본문 바로가기

전공지식/운영체제

(4)
[운영체제] 교착상태 1. 교착상태1.1 교착상태- 한 프로세스가 자원을 요청했을 때, 자원을 사용할 수 없는 경우가 발생할 수 있고, 그 경우에는 프로세스는 대기상태로 들어간다. 이처럼 대기 중인 프로세스들이 그들이 요청한 자원들이 다른 프로세스에 의해서 점유되고 있고, 그들도 다 대기상태에 있으면, 결코 다시는 그 상태를 변경시킬수 없는 상황.[그림1 교착 상태]그림1에서 P1프로세스는 P2 프로세스가 사용중인 자원 R1을 할당받기 위해서 기다리고 있고 P2 프로세스는 P1 프로세스가 사용중인 자원 R2를 할당받기 위해서 기다리고 있는데, 이와 같이 교착상태(DeadLock)이 발생하면 작업이 중지되고 프로세스들이 사용할 자원을 기다리게 된다. 1.2 교착상태 처리방법1.2.1 예방 or 회피시스템이 결코 교착상태가 되지..
[운영체제] 프로세스 동기화 1. 프로세스 동기화 기법1.1 뮤텍스1)뮤텍스일종의 Locking 매커니즘이다. lock을 가지고 있을 경우에만 공유 데이터에 접근 가능하다. 일부 음식점들은 공용 화장실 관리 차원에서 화장실을 잠궈두고(Locking) 다닌다. 손님들이 화장실에 가려면 주인에게 열쇠를 받은 후 가야한다. 물론 다음 손님이 화장실에 가려면 앞 손님이 열쇠를 반납해야 갈 수 있다. 이렇게 열쇠가 있는 lock을 가지고 있는 경우에만 공유자원(화장실)에 접근할 수 있다. 이게 바로 Mutex라고 보면 된다. 유의할 점은 Lock에 대한 소유권이 있다는 점이다. 열쇠를 획득한 사람만 반납할 수 있다.2) 세마포어세마포어는 동시에 리소스에 접근할 수 있는 '허용 가능한 Counter의 갯수'를 가지고 있는 Counter로 보면..
[운영체제] 프로세스와 쓰레드 1. 프로세스와 쓰레드 1.1 프로세스와 쓰레드의 정의- 프로세스 : 현재 실행 중이거나 곧 실행이 가능한 프로세스 디스크립터(PCB)를 가진 프로그램. - 쓰레드 : 프로세스 내에서 분리된 실행 흐름. 1.2 프로세스와 프로그램의 정의- 프로세스 : 다음 명령어를 수행하게 지정하는 프로그램 카운터를 가진 능동적(Active)인 단위를 의미.- 프로그램 : 단순히 디스크 상에 저장된 파일의 내용으로서 수동적(Passive)인 단위를 의미. 1.3 프로세스와 쓰레드의 차이 프로세스와 쓰레드는 메모리 관리에서 차이점을 가지고 있다. - 프로세스는 자신만의 고유 메모리 공간을 할당받아 사용.- 쓰레드는 메모리 공간에서 Register, Stack을 독립적으로 가지고, 나머지 메모리 공간 Code, Heap, ..
5장 CPU Schedule