[OS] 교착 상태(deadlock) 개념과 발생 원인
·
Computer Science/OS
교착 상태의 개념 교착 상태(deadlock) 결코 일어나지 않을 사건(event)을 기다리는 상태. 즉, 컴퓨터에서는 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원(비공유)을 기다릴 때를 의미한다. 프로세스 A는 스캐너 사용 권한을 요청하여 허용되었고, 프로세스 B는 CD 레코터를 요청하여 허용 프로세스 A가 CD 레코더를 요청하더라도 프로세스 B가 CD 레코더를 해제할 때까지 요청 거부 프로세스 B가 CD 레코더를 해제하지 않고 스캐너를 요청하면 두 프로세스는 서로 차단되어 영원히 기다림. 초기 일관 처리 시스템에서는 교착 상태가 발생하지 않았다. 사용자가 작업 제어 카드에 작업을 완료하는데 필요한 자원을 명시했고 일관 처리 시스템의 OS는 요청한 자원을 준비 큐로 이동시키기 전에 먼저 사..
[OS] 상호 배제 알고리즘 (데커, TAS, 세마포어, 모니터)
·
Computer Science/OS
보호되어 있는 글입니다.
[OS] 상호배제와 동기화
·
Computer Science/OS
상호배제의 개념 상호배제(Mutual Exclusion)는 병행 프로세스에서 특정 공유 자원을 한 순간에 한 개의 프로세스만 사용할 수 있을 때, 프로세스 하나가 공유 데이터에 접근하는 동안 다른 프로세스가 해당 테이터에 접근할 수 없게 제어하는 기법이다. 프로세스 간 동기화 물론 읽기 연산은 공유 데이터에 동시에 접근해도 문제가 발생하지 않는다. 하지만 변수나 파일은 프로세스 별로 하나씩 차례로 읽거나 쓰도록 해야 한다. 이때 동기화는 공유자원을 동시에 사용하지 못하게 실행을 제어하는 기법이다. 두개 이상의 프로세스를 한 시점에서 동시에 처리할 수 없으므로 각 프로세스에 대한 처리 순서를 결정하는 것으로 상호배제의 한 형태이다. 동기화는 상호배제를 보장하지만, 교착 상태와 기아 상태가 발생할 수 있다...
[OS] 병행 프로세스
·
Computer Science/OS
병행 프로세스의 개념 컴퓨터는 프로그램 작업을 수행하는 데 사용할 수 있는 여러 자원으로 구성된다. 프로세서 : 실제로 명령을 실행 메인 메모리 : 데이터를 저장 레지스터 : 프로세서의 임시 저장소 캐시(cache) : 프로세서가 자주 접근하는 프로세서 메모리 디스크 : 프로그램을 영구 저장 입출력 장치 : 키보드, 마우스, 프린터 등 네트워크 포트 이 중 메모리 같은 자원은 공유 영역으로써 모든 프로세스가 동시에 공유한다. 즉, 이 메모리 자원은 공유 영역으로서 병렬(parallel) 로 사용된다. 반면 입출력 장치 일부나 프로세서는 한 번에 프로세스 하나만 사용할 수 있는 공유 자원이다. 프로세서 하나는 한 번에 프로세스 하나만 실행할 수 있다. 하지만 OS가 프로세서를 빠르게 전환하여 프로세서 시간..
[OS] 프로세스 vs 스레드 총 정리
·
Computer Science/OS
프로세스 & 스레드 개념 컴퓨터 운영체제에 대해 입문하게 되면 가장 먼저 배우게 될 개념이 프로세스와 스레드 일 것이다. 결론 부터 말하자면 이 둘을 정의는 다음과 같다. 프로세스(Process) 스레드(Thread) 운영체제로부터 자원을 할당받은 작업의 단위 프로세스가 할당받은 자원을 이용하는 실행의 단위 운영체제(OS)에 대한 기본 배경 지식이 없다면 위의 정의가 무슨 소리인지 이해가 잘 되지 않을 것이다. 그래도 위의 문장에는 나름 설명이 함축되어 잘 정리 되어 있는 셈이다. 일단 프로세스의 작업의 단위 라는 단어와 스레드의 실행 흐름의 단위 라는 단어를 기억해 두고 글을 읽어보자. 프로그램 과 프로세스 정적 프로그램 (Static Program) "프로세스"라는 단어는 낯설겠지만 우리는 "프로그램..
[OS] 스레드의 개념과 상태 변화 및 구현
·
Computer Science/OS
스레드의 개념과 상태 변환 [OS] 프로세스 개념과 상태 변화 및 관리 프로세스(Process)란? 초기에 사용하던 컴퓨터는 프로그램을 한 번에 하나씩 실행했고, 실행 중인 프로그램이 컴퓨터 자원을 독점했다. 반면에 다중 프로그래밍 환경에서는 여러 프로그램을 메모 s-y-130.tistory.com 스레드의 개념 이전 포스팅에서 살펴본 프로세스는 두 가지 특성인 자원과 제어로 구분할 수 있다. 이 중 제어만 분리한 실행 단위를 스레드(thread)라고 하는데, 프로세스 하나는 스레드 한 개 이상으로 나눌 수 있다. 스레드들은 프로세스의 직접 실행 정보를 제외한 나머지 프로세스 관리 정보를 공유한다. 위 그림과 같이 프로그램 카운터(PC)와 스택 포인터(SP)등을 비롯한 스레드 '실행 환경 정보(문맥 정보..