Process는 무엇일까?프로세스는 OS가 제공하는 추상적인 개념으로, 실행중인 프로그램을 말한다.프로세스와 프로그램을 혼동할 수 있지만 프로그램은 그 자체적으로 생명이 없는 것이다.즉, 디스크에 들어있는 명령어 덩어리에 불과하다. 이를 가져다가 변환하고 실행하는 것은 os가 하는일이다. os가 이런 프로세스를 관리해주기 때문에 우리는 프로그램을 실행할 때 cpu가 사용가능한지 고려하지 않고,그냥 프로그램을 실행할 수 있는것이다. 그렇다면 물리적인 cpu가 몇개 없음에도 불구하고 어떻게 OS는 무한대의 CPU를 가진 것같은 착각을 줄 수 있는것일까? 이는 OS가 CPU를 virtualization, 가상화하기 때문이다.이전 복숭아의 예시와 같이, 한 프로세스를 실행하고 멈추고 다른 프로세스를 실행하면서 ..
운영체제에서 Virtualization, 즉 "가상화"란 무엇일까? 쉽게 예를 들자면, 복숭아 한개를 가지고 있다고 생각해보자. 하지만 복숭아를 먹고 싶어하는 사람은 여러명이고 모두가 만족하기 위해서는 각자 복숭아를 가지고 있어야 한다. 이를 해결하기 위해서 물리적인 복숭아 한개에서 가상의 복숭아 여러개를 만들어 내는 것이다. 이게 어떻게 가능할까? 사람들은 대부분의 시간을 자거나 다른 일을 하며 보낸다. 이 시간동안 복숭아를 뺏어서 필요한 다른 사람에게 넘겨준다면, 가상의 복숭아 여러개가 있는 것 같은 착각을 만들어 낼 수 있다.(실제로 우리가 갖고 있는건 복숭아 한개 뿐이다!) 이 상황을 CPU에 적용해보면, 물리적인 CPU가 한개 있을때 Virtualization을 통해 실행중인 애플리케이션들이 각..
https://pages.cs.wisc.edu/~remzi/OSTEP/ 위 사이트에 공유되어 있는 Operating Systems in Three EasyPieces 책을 통해 운영체제를 공부하고자 함. 또한 원어로 되어있는 책을 통해 학습함으로써 영어에 대한 친근감을 형성할 수 있을 것으로 기대됨. 포스팅은 주로 해당 목차의 요약을 올릴 예정.