4. Virtualization) Direct Execution
·
운영체제/Operating Systems in Three Easy Pieces
앞서, CPU를 virtualize하기 위해서는 OS가 동시에 동작하는 것처럼 보이는 프로그램들에게 물리적인 CPU를 공유해야한다고 설명했다. 기본 아이디어는 한 프로세스를 잠시 실행했다, 다른 프로세스를 실행하고, 또 다른 프로세스를 돌아가며 실행하는 것이다. 이걸 CPU의 time sharing이라고 한다. 하지만 time sharing에는 몇가지 문제들이 있다. 1. Performance 과도한 오버헤드 없이 좋은 성능을 유지하며 time sharing을 할 수 있을 것인가. 2. Control 어떻게 cpu를 컨트롤하며 효율적으로 프로세스들을 실행할 수 있을 것인가. Basic Technique : Limited Direct Execution 프로그램을 빠르게 실행하기 위해서 OS는 limited..
3. Virtualization) Processes API
·
운영체제/Operating Systems in Three Easy Pieces
앞서 2번글에서 OS가 프로세스를 위한 인터페이스를 제공한다고 했다. 이번 글에서는 OS가 process API를 어떻게 제공하는지 실제로 코드를 알아보자. 코딩은 UNIX가 제공하는 시스템으로 진행 할 것이다. The fork() System Call fork()는 새로운 process를 생성하는 시스템 콜이다. fork() 시스템 콜을 호출하면 새로운 프로세스를 생성하고, fork()를 호출한 프로세스를 부모 프로세스, 새로 생성된 프로세스를 자식 프로세스라고 한다. 프로세스는 각 프로세스를 식별하기 위해 id를 가지고 있는데, 이를 PID라고 한다. fork()를 통해 프로세스 생성에 성공 했을 때 새로 생성된 자식 프로세스에는 0을 반환하고, 부모 프로세스에는 자식 프로세스의 pid를 반환한다. ..
2. Virtualization) Processes
·
운영체제/Operating Systems in Three Easy Pieces
Process는 무엇일까?프로세스는 OS가 제공하는 추상적인 개념으로, 실행중인 프로그램을 말한다.프로세스와 프로그램을 혼동할 수 있지만 프로그램은 그 자체적으로 생명이 없는 것이다.즉, 디스크에 들어있는 명령어 덩어리에 불과하다. 이를 가져다가 변환하고 실행하는 것은 os가 하는일이다. os가 이런 프로세스를 관리해주기 때문에 우리는 프로그램을 실행할 때 cpu가 사용가능한지 고려하지 않고,그냥 프로그램을 실행할 수 있는것이다. 그렇다면 물리적인 cpu가 몇개 없음에도 불구하고 어떻게 OS는 무한대의 CPU를 가진 것같은 착각을 줄 수 있는것일까? 이는 OS가 CPU를 virtualization, 가상화하기 때문이다.이전 복숭아의 예시와 같이, 한 프로세스를 실행하고 멈추고 다른 프로세스를 실행하면서 ..
1. Virtualization) dialogue
·
운영체제/Operating Systems in Three Easy Pieces
운영체제에서 Virtualization, 즉 "가상화"란 무엇일까? 쉽게 예를 들자면, 복숭아 한개를 가지고 있다고 생각해보자. 하지만 복숭아를 먹고 싶어하는 사람은 여러명이고 모두가 만족하기 위해서는 각자 복숭아를 가지고 있어야 한다. 이를 해결하기 위해서 물리적인 복숭아 한개에서 가상의 복숭아 여러개를 만들어 내는 것이다. 이게 어떻게 가능할까? 사람들은 대부분의 시간을 자거나 다른 일을 하며 보낸다. 이 시간동안 복숭아를 뺏어서 필요한 다른 사람에게 넘겨준다면, 가상의 복숭아 여러개가 있는 것 같은 착각을 만들어 낼 수 있다.(실제로 우리가 갖고 있는건 복숭아 한개 뿐이다!) 이 상황을 CPU에 적용해보면, 물리적인 CPU가 한개 있을때 Virtualization을 통해 실행중인 애플리케이션들이 각..
Operating Systems in Three EasyPieces 책을 통해 운영체제를 공부하며
·
운영체제/Operating Systems in Three Easy Pieces
https://pages.cs.wisc.edu/~remzi/OSTEP/ 위 사이트에 공유되어 있는 Operating Systems in Three EasyPieces 책을 통해 운영체제를 공부하고자 함. 또한 원어로 되어있는 책을 통해 학습함으로써 영어에 대한 친근감을 형성할 수 있을 것으로 기대됨. 포스팅은 주로 해당 목차의 요약을 올릴 예정.