본문 바로가기

운영체제10

운영체제 || 10. Process Scheduling III 1. Real Time System a) Hard real time system > 어떤 task가 주어진 시간안에 반드시 완료되어야 함 > 자동차 에어백, 자율주행 등등 b) Sort real time system > 데드라인이 중요하긴 하나 못맞춰도 기능적 문제는 없음 > 실시간 스트리밍, 온라인게임같은거 > RealTime CPU scheduling은? > Preemption이 가능한 우선순위 기반으로 스케쥴링함 > 왜냐면 non-preemptive 알고리즘을 채용하게 되면 데드라인을 만족하기 어렵기 때문 + Real Time에서는 Task(Process)가 주기적임을 가정함 t는 한번 수행시 t만큼의 시간이 걸리는 것 d는 데드라인 p는 주기 2. RMS - Rate Monotonic Schedu.. 2021. 4. 17.
운영체제 || 9. Process Scheduling II 1. Priority Scheduling > 우선순위를 어떻게 할당하냐에 의해 알고리즘이 달라짐. > preemptive, non-preemptive 둘 다 디자인 가능 > 이 우선순위 알고리즘에 몇가지 문제가 존재함 a) Starvation 문제 >> 높은 우선순위가 계속 들어오게되면 낮은 우선순위를 가진 프로세스는 실행되지 못함 >> 해결방법으로는 ready queue에 있는 시간이 길어지면 일시적으로 우선순위를 높여주는 방법이 있음 b) Priority inversion problem >> 우선순위 역전 문제 >> 순위 높은순으로 진행해야하는데, 경우에따라 낮은 프로세스가 먼저 실행될 때가 있음. >> 가장 유명한 예시로 PathFinder > Low 프로세스에서 LOCK을 걸어서 HIGH 프로세스.. 2021. 4. 17.
운영체제 || 8. Process Scheduling I 1. What is Process Scheduling? > 각 프로세스들은 각자 주소 공간을 가지고 있음 > 멀티 프로세스 환경에서는 각 코어가 각각의 프로세스 코드를 실행함. >> 그렇다면 단일 프로세스인 경우에는?? >> 각 프로세스의 실행을 CPU가 번갈아가면서 작업함. >> 1번 프로세스 조금 2번 프로세스 조금 3번 프로세스 조금 이런식으로 스위칭 >> 그럼 이 순서는 누가 정하냐? >> 당연히 OS가 정하게 됨 OS에서 어떤 프로세스가 실행 될지 정해줌 프로세스 스케쥴링의 목표는 CPU 리소스에 대해서 여러 프로세스들을 가능한 빠르게 교체하는 것. 즉 프로세스간 스위칭을 굉장히 빠르게 하는 것. 스케쥴링 하는 방법을 말하기 전에, 프로세스들의 타입에 대해 설명하려 함. A) CPU-bounde.. 2021. 4. 17.
운영체제 7 || thread (2 현대의 컴퓨터들은 코어의 개수가 올라강메 따라서 멀티스레딩을 좀 쉽게 할 수 있는 여러 방법이 고안됨 1. Implicit Threading 스레드를 만들고 관리하는걸 개발자가 직접 하는게 아닌 컴파일러와 런타임 라이브러리를 통해 OS의 도움을 받아서 관리하는것. 즉 개발자는 멀티스레딩을 고려하지 않아도 백그라운드에서 멀티 스레딩으로 변환됨 1-1. Thread Pools > 개발자가 스레드를 직접 만들긴 함, 하지만 라이브러리나 OS가 공간을 할당받고, 미리 정해진 개수의 스레드를 만듦 이러한 공간을 스레드 풀이라고 함. > 스레드 풀에서 만들어진 스레드들은 Sleep상태로 대기함 1-2. Fork Join > 멀티 스레딩은 결국 연산속도를 빠르게 하기 위함. > 분할 정복과 비슷한 매커니즘 > 메인 .. 2021. 4. 17.
운영체제 6 || 스레드(threads) 멀티프로세서 구조는 기본적으로 cost가 높음 -개발이 어렵다. -속도에 있어서 오버헤드가 있다. 위와 같은 문제들을 스레드가 해결해 줌 1. What is Thread? - 스레드는 CPU이용의 기본 단위 - 스레드는 프로그램에서 일련의 명령들을 실행함. 이 스레드는 두 가지 형태로 나뉘는데 a. 싱글 스레드 프로세스 - 스레드가 단일이라서 thread state가 하나만 존재함. - 이 싱글 스레드가 하나에 코어에만 매핑이 됨 b. 멀티 스레드 프로세스 - 스레드 여러개가 별도의 실행 흐름을 가짐 1-1. 스레드끼리 공유하는 것 - Code - Global variable - Opened files - Heap 1-2. 스레드 각자 가지고 있는 것 - Set of registers (Program C.. 2021. 4. 17.