본문 바로가기

Computer Sience70

[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.
[Design Pattern] 템플릿 메소드, 템플릿 콜백 (Template method, Template-Callback) 패턴 템플릿 메소드 (Template method) 패턴알고리즘 구조를 서브 클래스가 확장할 수 있도록 템플릿으로 제공하는 방법추상 클래스는 템플릿을 제공하고 하위 클래스는 구체적인 알고리즘을 제공한다    템플릿 메소드 (Template method) 패턴 beforeFileProcessor 클래스 public class FileProcessor { private String path; public FileProcessor(String path) { this.path = path; } public int process(){ try(BufferedReader br = new BufferedReader(new FileReader(path))) { .. 2024. 11. 25.