[OS] 1장. 서론


시작하기전에

운영체제 스터디를 시작하게 되었다. 학교에서 운영체제 수업을 들었지만 한번 배운 것으로는 기억이 잘 나지 않아서 좀 더 깊게 공부하고자 정리하기로 마음먹었다. 책 없이 내가 작성한 글만으로 운영체제를 이해할 수 있게끔 글을 잘 작성하는 것이 목표다.

참고

OS 교과서로 유명한 운영체제 공룡책 한글판을 주 교재로 사용할 것이고 학교에서 실제 교과서로 썼던 "OS? Oh Yes!"책을 부교재로 사용할 것이다. 공룡책은 다양한 상황에 대한 설명이 깊게 나온다는 장점이 있고 "OS? Oh Yes!" 책은 꼭 필요한 개념을 번역체가 아닌 우리말로 쉽게 설명한다는 장점이 있다.

1장. 서론

앞으로 운영체제 책에서 다룰 내용을 전반적으로 설명한다. 운영체제를 처음 배우는 분들은 공룡책 1장 몇페이지를 넘기자마자 당황스러울 것이라고 생각한다. 앞으로의 지식을 전반적으로 설명하고 있어서 그런지 낯선 단어들이 독자가 알것이라는 전제로 등장한다. 운영체제를 처음 배우는 분들은 1장을 이해한다는 생각보다는, 앞으로 이런 내용이 나오겠구나 생각하면서 읽기만해도 도움이 될 것이라고 생각한다. 내용을 정리하면서 1장에서 배우기는 어렵다고 생각하는 것들(분산 시스템 등)은 서론 정리에서 제외하였고, 처음 배우는 분들도 접근하기 쉽게 하기 위해 부교재나 다른 자료들을 참고하였다.


운영체제가 하는 일

https://images.velog.io/images/sj_dev_js/post/a5f31853-42d7-4aaf-8f4c-eab5fc5932ef/image.png

컴퓨터 시스템은 하드웨어, 운영체제, 응용 프로그램, 사용자로 이루어져있다. 하드웨어는 CPU, 메모리, 입출력장치 등으로 구성되어 있으며 자원을 제공한다. 응용프로그램인 웹 브라우저, 워드 프로세서 등은 사용자의 계산 문제를 해결하기 위해 자원을 어떻게 사용할지 정의한다. 운영체제는 다양한 사용자를 위해 다양한 응용 프로그램 간의 자원 사용을 제어하고 조정한다.

컴퓨터 시스템의 기본 목표는 프로그램을 실행해서 사용자의 계산 문제를 쉽게 해결하는 것이다. 그러나 하드웨어만으로는 컴퓨터의 계산능력을 활용하기 쉽지 않으므로 응용 프로그램이 개발된다. 이러한 응용 프로그램들은 입출력 장치 제어나 CPU 사용 등 자원들을 두고 경쟁하게된다. 경쟁하는 프로그램들 사이에서 자원을 제어하고 할당하는 기능은 운영체제를 통해 실현되는 것이다.


컴퓨터 시스템의 구성

프로세스

프로세스란 수행중인 프로그램(A program in execution)이다. 처리기 작업의 단위이기도 하다. 이는 디스크에 단순히 저장된 프로그램은 프로세스가 아니라는 말과 같다. 프로그램과 데이터를 기본으로 정상적인 실행을 위해 필요한 환경을 시스템으로부터 부여받은 능동적인 존재이다.

번역된 책들은 execute 와 running 모두 실행이라고 번역하는데 이는 다른 개념이다. excute 중인 프로그램을 프로세스라고 한다 running 프로세스는 CPU에 의해 작업 중인 프로세스이다 프로세스라고 해서 항상 running인 것은 아니며 인터럽트나 트랩에 의해 대기상태나 보류상태가 된다. 헷갈릴 여지가 다분하기 때문에 excute를 수행이라고 번역하였다

커널