728x90

OS 94

운영체제 5. 스케줄링 : 개요

5. 스케줄링 : 개요 5.1 워크로드에 대한 가정 프로세스가 동작하는 일련의 행위를 워크로드(Work load)라 한다. 워크로드에 대한 이해도가 높을수록 그에 최적화된 스케줄링 정책을 정교하게 개발할 수 있다. 우리는 시스템에서 실행 중인 프로세스 혹은 작업(job)에 대해 다음과 같은 가정을 한다 모든 작업은 같은 시간동안 실행된다. 모든 작업은 동시에 도착한다. 작업은 일단 시작하면 최종적으로 종료될 때 까지 실행된다. 모든 작업은 CPU만 사용한다.(즉, 입출력을 수행하지 않는다.) 각 작업의 실행시간은 사전에 알려져 있다. 5.2 스케줄링 평가 항목 스케줄링 정책의 평가를 위해 스케줄링 평가항목(Scheduling metric)을 결정해야 한다. 반환시간은 (turnaround time) 작업..

책/운영체제 2024.03.02

데드락(Dead Lock)/교착상태

데드락(Dead Lock)/교착상태 두 개 이상의 프로세스나 쓰레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태이다. 무한히 다음 자원을 기다리게 되는 상태를 말한다. 시스템 적으로 한정된 자원을 여러곳에서 사용하려고 할 때 발생한다 데드락의 발생조건 4가지 모두 성립해야 데드락 발생(하나라도 성립하지 않으면 데드락 문제 해결 가능하다.) 상호 배제(Mutual exclusion) 자원은 한 번에 한 프로세스만 사용할 수 있다. 점유 대기(Hold and Wait) 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용하고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 존재해야 한다. 비선점(No Preemption) 다른 프로세스에 할당된 자원은 사용이 끝날때까지 강제..

Computer/CS 2024.03.02

문맥교환(Context Switching)

문맥교환(Context Switching) 하나의 프로세스가 CPU를 사용중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기위해, 이전의 프로세스의 상태(문맥)을 보관하고 새로운 프로세스의 상태를 적재하는 작업을 말한다. 이때 한 프로세스의 문맥은 그 프로세스의 프로세스 제어블록(PCB)에 기록되어 있다. PCB(Process Control Block) 운영체제가 시스템 내의 프로세스들을 관리하기 위해 프로세스 마다 유지하는 정보들을 담는 커널 내 자료구조로 커널 주소 공간의 data 영역에 존재한다. PCB에 저장되는 내용들 Process 상태 : CPU를 할당해도 되는지 여부를 결정한다. PC 값 : 다음에 수행할 명령어를 가리킨다. CPU Register : CPU연산을 위해 현 시점에 레지스터..

Computer/CS 2024.03.01

세마포어/뮤텍스_Semaphore/Mutex

Semaphore/Mutex 프로세스 간 메시지를 전송하거나, 공유메모리를 통해 공유된 여러 개의 프로세스가 동시에 접근하면 Cirtical section 문제가 발생 할 수 있다. 이를 해결하기 위해 데이터를 한 번에 하나의 프로세스만 접근할 수 있도록 제한을 두는 동기화 방식을 취해야 한다. 동기화 도구에는 대표적으로 뮤텍스와 세마포어가 있다. 세마포어_Semaphore 공유된 자원의 데이터 혹은 임계영역(Critical section)등에 여러 프로세스 혹은 쓰레드가 접근하는 것을 막아준다. 사용하고 있는 쓰레드/프로세스의 수를 공통으로 관리하는 하나의 값을 이용해 상호배제를 달성한다. 공유 자원에 접근할 수 있는 프로세스/쓰레드의 최대 허용치만큼 동시에 사용자가 접근할 수 있으며, 각 프로세스는 ..

Computer/CS 2024.03.01
728x90