본문 바로가기

Computer Sience/Operating System7

[OS] 운영체제 아주 쉬운 세 가지 이야기 7장 스케줄링 참고 자료 [책] 운영체제 아주 쉬운 세 가지 이야기 7장 스케줄링 개요 다양한 스케줄링 정책(scheduling policy) 을 소개하고 그에 관한 이해를 높일 것이다. 7.1 워크로드에 대한 가정 일련의 프로세스들이 실행하는 상황을 워크로드(workload)라고 부르기로 한다. 워크로드를 결정하는 것은 정책 개발에 매우 중요한 부분이다.  우리는 시스템에서 실행 중인 프로세스 혹은 작업(job)에 대해 다음과 같은 비현실적인 가정을 한다.1. 모든 작업은 같은 시간 동안 실행된다.2. 모든 작업은 동시에 도착한다.3. 각 작업은 시작되면 완료될 때까지 실행된다. (비선점)4. 모든 작업은 CPU 만 사용한다(I/O 작업 X).5. 각 작업의 실행 시간은 사전에 알려져 있다. 몇몇 가정은 다른 가정에.. 2025. 4. 7.
[OS] 운영체제 아주 쉬운 세 가지 이야기 6장 제한적 직접 실행 원리 참고 자료 [책] 운영체제 아주 쉬운 세 가지 이야기 6장 제한적 직접 실행 원리 개요 CPU를 가상화하기 위해서 운영체제는 여러 작업들이 동시에 실행되는 것처럼 보이도록 물리적인 CPU를 공유한다. CPU 시간을 나누어 씀으로써 가상화를 구현할 수 있다.  이러한 가상화 기법을 구현하기 위해서는 몇 가지 문제를 해결해야 한다. 1. 성능 저하 (시스템에 오버헤드를 주지 않으면서 가상화를 구현)2. 제어 문제 (운영체제가 프로세스에 대한 제어권이 있어야 함) 6.1 기본 원리: 제한적 직접 실행 운영체제 개발자들은 프로그램을 빠르게 실행하기 위해 제한적 직접 실행(Limited Direct Execution) 기법을 개발했다. 프로그램을 CPU 상에서 직접 실행시키는 것. 해당 그림은 직접 실행 (아무 .. 2025. 4. 1.
[OS] 운영체제 아주 쉬운 세 가지 이야기 5장 프로세스 API 참고 자료 [책] 운영체제 아주 쉬운 세 가지 이야기 5장 프로세스 API 개요이번 절에서는 Unix 시스템의 프로세스 생성에 관해 논의한다. Unix는 프로세스를 생성하기 위하여 fork()와 exec() 시스템 콜을 사용한다. wait()는 프로세스가 자신이 생성한 프로세스가 종료되기를 기다리기 원할 때 사용된다.  프로세스를 생성하고 제어하려면 운영체제가 어떤 인터페이스를 제공해야 하는가? 유용하고 편하게 사용하기 위해서 이 인터페이스는 어떻게 설계되어야 하는가?5.1 fork() 시스템 콜  결과  실행이 시작될 때 프로세스는 hello world ...  메시지를 출력한다. 이 메시지에는 PID(프로세스 식별자, process identifier)가 포함된다. 해당 프로세스는 29146이라는 P.. 2025. 3. 31.
[OS] 운영체제 아주 쉬운 세 가지 이야기 4장 프로세스의 개념 참고 자료 [책] 운영체제 아주 쉬운 세 가지 이야기 4장 프로세스의 개념 개요 사용자는 하나 이상의 프로그램을 동시에 실행시키기를 원한다. 적은 개수의 CPU 밖에 없더라도, 운영체제가 어떻게 무한개에 가까운 CPU가 있는 듯한 환상을 만들 수 있을까? 운영체제는 CPU를 가상화하여 이러한 환상을 만든다. 하나의 프로세스를 실행하고, 얼마 후 중단시키고 다른 프로세스를 실행하는 작업을 반복하면서 실제 하나 또는 소수의 CPU로 여러 개의 가상 CPU가 존재하는 듯한 환상을 만들어 낸다. 시분할(time sharing) 운영체제의 지능은 정책의 형태로 표현된다. 정책은 운영체제 내에서 어떤 결정을 내리기 위한 알고리즘이다. 예를 들어, 실행 가능한 여러 프로그램들이 있을 때, 운영체제는 어느 프로그램을 .. 2025. 3. 31.
[OS] 운영체제 아주 쉬운 세 가지 이야기 2장 운영체제 개요 참고 자료 [책] 운영체제 아주 쉬운 세 가지 이야기 2장 운영체제 개요 프로그램이 실행될 때 어떤 일이 일어날까?명령어를 실행한다.프로세서는 명령어를 초당 수십억 번 반입(fetch)하고, 해석(decode)하고, 실행(execute)한다명령어 작업을 완료한 후 프로세서는 다음 명령어로, 그 다음 명령어로 프로그램이 종료될 때까지 실행을 계속한다  시스템을 사용하기 쉽게하기 위해(easy to use) 프로그램 실행 시 다양한 일들이 발생한다는 것을 배운다. 운영체제(operating system, OS)은 하나의 소프트웨어, 시스템을 사용하면서 편리하고 정확하고 올바르게 동작시킬 책임이 있다.  운영체제는 가상화(virtualization)기법을 사용하여 프로세서, 메모리, 디스크 같은 물리적(phy.. 2025. 3. 22.
스레드 컨텍스트 스위칭 vs 프로세스 컨텍스트 스위칭 목차목표컨텍스트 스위칭(context switching)프로세스를 제어하기 위한 정보 모음 (PCB Process Control Block)프로세스, 스레드 구조스레드 컨텍스트 스위칭프로세스 컨텍스트 스위칭스레드 컨텍스트 스위칭이 더 빠른 이유컨텍스트 스위칭이 미치는 간접적인 영향?유저 관점에서 컨텍스트 스위칭이란?목표컨텍스트 스위칭은 무엇인가왜 스레드 컨텍스트 스위칭이 프로세스 컨텍스트 스위칭 보다 더 빠른지 이해컨텍스트 스위칭(context switching)CPU/코어에서 실행 중이던 프로세스/스레드가 다른 프로세스/스레드로 교체되는 것오늘날 프로세스는 무조건 1개 이상의 스레드를 가진다.CPU 기본 실행 단위 = 스레드그래서 프로세스가 다른 프로세스로 교체된다는 말은 프로세스(스레드)에서 다른 프.. 2024. 5. 18.