본문 바로가기

System

(3)
[OS] Scheduling 1. 개요 (0) 들어가기 앞서 스케쥴링은 아직까지도 나름 활발하게 연구되고 있는 분야다. 현존하는 프로세서들은 각자 조금씩 다른 스케쥴링 정책을 가지고 있고, 각 프로세서 별 최적화된 스케쥴링을 만드는 것 만으로도 상당한 실력이 필요하다. 우리는 스케쥴링이 무엇인지, 왜 필요한지, 어떻게 이루는지, 무엇을 기준으로 만드는지를 알아볼 것이다. 최적의 스케쥴링 방법을 알아보는건 대학원 가서 알아서 하시라. (1) CPU 가상화 이전 포스트에서 간단히 설명했는데, CPU 가상화는 여러 프로세스들 간에 CPU를 시간에 따라 나눠 쓰는 것을 말한다. OS는 프로세스한테 마치 가용 CPU 코어가 남아있는 것처럼 환상을 준다. 여기에 낚인 프로세스는 대기열에 서게 되고, 시간 단위로 CPU를 썼다가 뺏겼다가 하면서..
[OS] Process 1. Process의 개념과 배경 (1) 프로세스란? 프로세스의 정의는 단순히 "돌아가고 있는 프로그램" 이다. 안돌아가는 프로그램은 우리가 실행하기 전까지 HDD 구석에 박혀있으니, OS를 배우는 단계에서는 그냥 프로세스=프로그램 이라고 봐도 무방하겠다. 프로세스에 왜 그렇게 집착을 하느냐. 이전 포스트에서 스레드는 하드웨어 자원을 공유하고 프로세스는 공유하지 않는다고 했다. 여기서 가장 중요한 하드웨어 자원은 두 가지인데, 하나는 CPU고 다른 하나는 메모리다. 우리는 이걸 효율적으로 쓰기 위해서 "가상화"라는 작업을 할 것인데, 요건 파트를 따로 두어야 할 정도로 양이 많으니 아주 간단하게만 설명할 것이다. (2) CPU 가상화(CPU Virtualization) 본격적인 내용은 Scheduling..
[OS] Introduction, Properties 0. 들어가기 앞서 이 포스트는 Operating System 에 관한 기본 정보들을 복습하는 김에 겸사겸사 아카이브해놓은 정리글이다. 영어로 된 내용을 한글로 번역하며 필기하는 느낌으로, 코드나 내용의 유지보수는 아마도 하지 않을 예정. 코드는 주로 C로 작성하였으며, 참고자료는 Operating System: Three Easy Pieces v0.91 by Arpaci-Dusseau 이고 레퍼런스는 울 학교 교수님 강의자료다. 연세대학교 송진호 교수님 사랑해요. 1. OS란? (1) 컴퓨터의 구조 컴퓨터는 여러가지 부품으로 이루어지는데, 전력 공급을 위한 파워 서플라이를 제외하면 위와 같이 나타난다. 이 중에서 OS에 연관된 것을 살펴보면 1) 연산 장치 : CPU, GPU 2) 휘발성 저장 장치 :..