목록운영체제 (31)
Shine's dev log
앞서 살펴봤듯이, 한 컴퓨터에는 여러개의 프로세스들이 돌아가고 있다는 것을 알 수 있다. 이 떄, 프로세스들이 서로 필요한 데이터들을 공유해야하는 경우도 있을 것이다. 그렇다면 과연 프로세스들끼리의 소통은 어떻게 할까? 1. Inter process communication 우선 프로세스들이 소통을 해야하는 필요성에 대하여 생각해보자. 예를 들어 크롬으로 브라우징을 한다고 생각해보자. 이 때, 브라우저 프로세스와 렌더링을 해주는 프로세스와 플러그인 기능의 프로세스가 같이 협력을 해야만 사용자는 편리하게 크롬으로 브라우징을 할 수 있다. 이렇게 여러 프로세스가 협력하는 경우 데이터 공유 등 소통을 해야 하는데, 소통하는 방법에 대하여 알아보자. 2. Coope..
우리가 사용중인 컴퓨터는 여러개의 프로세스들이 실행되고있다. 사실 이 여러개의 프로세스는 독립적으로 생성된 것이 아니라 처음 하나의 프로세스에서 복제되어 나온 자식들이다. 이때, 프로세스를 복제하여 자식 프로세스를 낳는 과정을 알아보자. 1. Create Process 앞서 말했듯이 모든 프로세스들은 복제되어 생성된다. 그리고, 기존 프로세스에서 새로운 프로세스를 생성하는 시스템콜이 fork() 이다. fork 는 현재 실행중인 프로세스와 똑같은 프로세스를 생성한다. 이때. 기존 프로세스를 parent process, 복사된 프로세스를 child process 라고 한다. child process는 parent process 의 주소공간(메모리)을 복사하여 만들어진..
컴퓨터를 공부하다 보면 프로그램, 프로세스라는 말이 많이 나온다. 과연 프로그램과 프로세스의 정확한 정의는 무엇인지 이 둘의 차이는 무엇인지 이번에 다뤄보자. 1. 프로세스란? 프로세스를 가장 직관적으로 볼 수 있는 곳은 작업관리자이다. 작업관리자를 실행하면 프로세스 탭에서 현재 컴퓨터에서 실행중인 프로세스의 목록을 확인할 수 있다. 우리가 현재 사용중인 웹이나 프로그램들 뿐만 아니라 우리가 인지하지 못했지만, 열심히 돌아가고 있는 여러 프로세스들도 확인할 수 있다. 프로세스란.. 디스크에 있는 프로그램이 메모리에 올라와 실체화 된 것이다. 자바를 예로들어 설명해보면, class 인 프로그램이 object인 프로세스가 되는 것이다. 따라서 하나의 ..
이제 본격적으로 운영체제의 구조에 대해 살펴보자. 운영체제는 구조에 따라 크게 4가지로 분류된다. 지금부터 하나씩 살펴보자. 1. Simple Structure 가장 간단하고, 가장 오래된 운영체제의 구조이다. 가장 대표적인 운영체제로는 MS-DOS가 있다. 과거 컴퓨터의 메모리와 성능이 지금보다 안좋을 때 나온 운영체제이기 때문에 공간 활용을 극대화 시켰다. 그래서 모듈화로 구분되어 있다기보다는 하나의 큰 덩어리로 되어있는 구조이다. 위의 그림이 MS-DOS의 대략적인 구조를 나타낸 그림이다. 그림에서 볼 수 있다시피 일반 어플리케이션도 하드웨어에 직접적으로 접근을 할 수 있는 구조이다. 즉, 유저모드와 커널모드의 구분이 없어서 보안상으로 취약한 형태..
1. 컴퓨터가 켜지는 과정 우리가 컴퓨터를 켜기 위해서 전원 버튼을 누르는 순간, CPU에 전원이 들어가게 된다. CPU의 Program Counter는 전원이 들어오는 순간, 컴퓨터 메모리 중 롬(ROM)에 저장되어 있는 코드를 실행시킨다. 이 과정에서 1) PC의 전체적인 상태를 점검하고(POST; Power On Self Test), 2) Bootstrap Program (BIOS)을 실행시켜 3) Boot loader를 RAM에 적재하여 실행시킨다. 이후 4) Boot loader가 운영체제를 메모리에 올려 실행시킨다. 하지만 운영체제는 크기가 큰 프로그램이기 때문에 한번에 운영체제의 모든 부분이 로드되기는 힘들다. 그래서 운영체제 중 핵심적인 기능이 모여있는 부분이 먼저 실행이 된..
지난번에 정의한 운영체제란 "사용자와 하드웨어 사이에서 사용을 더 원활하게 해주는 소프트웨어" 였다. 즉, 운영체제란 사용자가 사용하는 어플리케이션과 컴퓨터를 구성하는 하드웨어 그 사이 어딘가에 위치해 있다는 것을 알 수 있다. 다시말하면, 중간에 위치한 운영체제가 일을 잘못하게 되면, 사용자가 사용하는 어플리케이션이 컴퓨터의 하드웨어, 즉 굉장히 코어한 부분까지 접근이 가능하다는 것이다. 운영체제를 경찰에, 어플리케이션을 시민, 하드웨어를 은행으로 비유해보자. 만약 경찰(운영체제)가 해야할 일을 제대로 하지 않으면, 시민(어플리케이션)이 마음대로 은행(하드웨어)에 접근하여 돈을 훔칠 수 있다는 것이다. 오늘은 이런 Protection의 관점에서 운영체제를 살펴보자. 1. 유저모..