커널 2

PintOS Project 2 : system call (1)

user program은 컴퓨터 전체를 소유한다는 환상 하에 쓰여진다. 예를 들어서 메모리, cpu 등 자원들을 사용하는데 우리는 이것을 추상화 하여 각 프로세스가 진짜로 자원을 다 사용하고 있다고 착각하게 만든다. 또는 이 환상을 만족시키는 방향으로 관리를 해야 한다. 따라서 프로세스가 하면 안되는 작업을 하기 위해 시스템 콜을 호출하게 된다. 시스템 콜이란 유저프로그램이 못하는 작업을 커널에게 부탁을 하는 것이라고 생각할 수 있다. 따라서 project 2 의 목표는 OS와 user program이 상호작용을 할 수 있도록 시스템 콜 함수들을 구현하는 것이다.    위의 그림을 간단히 설명해보자면,유저프로그램이 exec() 함수를 실행한다.exec()는 유저프로그램이 실행하지 못하는 작업이므로 커널에..

PintOS 2024.09.18

운영체제, 추상화, 컴퓨터 시스템

디자인 설계 방법 중에는 상향식 방법과 하향식 방법이 있고, 이 두 가지 방법을 통해 OS design을 조금 이해해보고자 한다.   컴퓨터 시스템의 fundamental은 무엇이냐 ? 라고 질문에 두 가지에 대답이 있다. 1. Abstraction (추상화)2. problem decomposition (작은 단위로 문제를 나누기)    문제의 크기(개수) 와 복잡성의 상관관계는 지수적인 관계로 나타난다. 왜 비례 혹은 반비례 관계는 될 수가 없을까 ?     애초에 우리는 문제가 주어지면 우리가 문제를 하나 하나 씩 해결해야 한다고 생각하고 있다. 그러나 이는 단편적인 것으로 보았을 때 그러하고 사실 생각해야 할 것이 있다.    이렇게 문제 사이에도 관계가 발생할 수 있기 때문에 문제의 크기(개수)가..

CS 2024.08.28