JJM
Operating System

[운영체제 아주 쉬운 세 가지 이야기 - Virtualization] 9. Lottery Scheduling

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 이 장에서는 비례 배분(proportional share) 스케줄러 혹은, 공정 배분(fair share) 이라고도 하는 유형의 스케줄러에 대해 다루도록 하겠다. 비례 배분의 개념은 반환 시간이나 응답 시간을 최적화하는 대신 스케줄...

Operating System

[운영체제 아주 쉬운 세 가지 이야기 - Virtualization] 8. Multi-level Feedback

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 이 장에서는 멀티 레벨 피드백 큐(Multi-Level Feedback Queue, MLFQ)로 알려진 가장 유명한 스케줄링 기법에 대해 논의한다. MLFQ 스케줄러는 1962년년에 최초로 소개되었고, 최고의 영예인 Turing A...

Operating System

[운영체제 아주 쉬운 세 가지 이야기 - Virtualization] 7. CPU Scheduling

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 이제 프로세스를 싱행시키기 위한 문맥 교환 등의 저수준 기법에 대해서는 분명하게 이해할 수 있기에 운영체제 스케줄러의 고수준 정책에 관해서는 이해가 필요하다. 이제부터는 다양한 스케줄링 정책(scheduling policy)을 소개...

Operating System

[운영체제 아주 쉬운 세 가지 이야기 - Virtualization] 6. Direct Execution

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 CPU를 가상화하기 위해서 운영체제는 여러 작업들이 동시에 실행되는 것처럼 보이도록 물리적인 CPU를 공유한다. 기본적인 아이디어는 간단하다. 한 프로세스를 잠시 동안 실행하고 다른 프로세스를 또 잠깐 실행하고, 이런 식으로 계속해...

Operating System

[운영체제 아주 쉬운 세 가지 이야기 - Virtualization] 5. Process API

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 이번 절에서는 운영체제 API와 사용법을 포함한 시스템의 실제적인 측면을 다루고, Unix 시스템의 프로세스 생성에 관해 논의힌다. Unix는 프로세스를 생성하기 위해 fork()와 exec() 시스템 콜을 사용한다. wait()은...

Operating System

[운영체제 아주 쉬운 세 가지 이야기 - Virtualization] 4. Processes

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 이 장에는 운영체제가 제공하는 핵심 개념 중 하나인 프로세스(Process)에 대해 논의한다. 일반적인 프로세스는 실행 중인 프로그램으로 정의한다. 프로그램 자체는 생명이 없는 존재이다. 프로그램은 디스크 상에 존재하며 실행을 위한...

Operating System

[운영체제 아주 쉬운 세 가지 이야기] 2. Introduction

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 운영체제 개요 프로그램이 실행될 때 어떤 일이 일어날까? 프로그램은 매우 단순한 일을 한다. 명령어를 실행한다 프로세서는 명령어를 초당 수십억 번 반입(fetch)하고 해석(decode)하고 (즉, 무슨 명령어인지 파악하고)...

Singleton Pattern

싱글톤 패턴 Singleton Pattern

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 싱글톤(Singleton) 패턴은 디자인 패턴 중, 사용하기 간단하고 많이 사용되는 패턴 중 하나이다. 싱글톤 패턴을 따르는 클래스는 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성...

Reflection

언리얼 리플렉션 시스템 Reflection

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 리플렉션 리플렉션은 프로그램이 실행 시간에 자기 자신을 조사하는 기능이다. 자기 자신이란 클래스, 구조체, 함수, 멤버 변수, 열거형 등을 의미한다 즉, 런타임에 객체의 타입을 보는 것을 포함해 구조와 행동까지 수정하는 것이 리플렉션...