목차
운영체제의 소개
- 운영체제란?
- 가상화, 병행성, 영속성
- 설계 목표
- 약간의 역사
위와 같은 순서로 이번 주제를 학습하게 되었다.
이번 주차에서는 운영체제란? 에 대해서 알아보는 주차였다.
운영체제란?
총체적으로 컴퓨터를 관리하는 소프트웨어
즉, 소프트웨어다.
이 운영체제라는 소프트웨어는 컴퓨터의 어디 부분에 속하고 있을까?
그러기 위해서 컴퓨터를 한번 시각화해서 그려 보았다.
Application | |
---|---|
System Softwares | 운영체제가 담당하는 부분 |
Kernel | |
Device Driver | |
Firmware | |
Hardware |
이렇게 생긴 운영체제란 녀석은 종류마저도 많다.
- Windows
- MacOS
- Linux
- Android
- IOS
등 이것말고도 너무나도 많은 운영체제가 존재한다.
이렇게 거대하고, 또 많은 소프트웨어는 대체
- 무슨일을 할까?
- 그 일을 대체 왜 할까?
- 목표는 뭘까
- 서로서로 비슷하게 생겼을까?
이것들을 알아보기 전에 먼저, 마우스를 이용해서 프로그램을 실행시켜보자
프로그램이 컴퓨터에서 실행되는 과정
우리는 일상적으로 마우스를 이용해서 아이콘을 더블클릭해서 프로그램을 실행시킨다.
이 더블클릭을해서 프로그램이 실행될때 OS는 어떤일들을 할까?
- 먼저 입력장치로 부터 입력신호를 받아온다.
- 그 후, Interrupt를 발생시켜서, 현재 실행중인 프로세스를 stack에 저장한다.
- 마우스가 더블클릭한 아이콘, 그 아이콘이 가리키는 프로그램의 주소를 찾아서 Shell이 실행명령을 OS에 전달한다
- 실행명령을 받은 OS는 먼저 프로그램을 실행하기 위해서 필요한 공간등이 있는지 확인하고, 있다면 필요한 리소스들을 요청한다.
- 운영체제는 PCB(Process Control Block)을 만들어 PCB를 저장하는 연결리스트에 넣는다.
- PCB 내부에 필요한 데이터들을 담는다.
- 코드를 담을 공간에 프로그램파일을 불러와서 넣는다
- 전역변수, static, class를 저장하는 공간을 생성하여 넣어준다
- 동적할당을 위한 공간 heap을 생성한다.
- 지역변수를 저장하기 위한 공간 stack을 생성한다.
이렇게 PCB를 만들어 저장하게 되면, 프로세스의 실행 준비가 끝이 났다.
이 이후로는 PC(Program Counter)의 동작에 의해서 프로세스가 진행이 되고,
프로세스가 모두 실행되면 만들었던 PCB를 반환하는것으로 프로세스가 종료가 된다.
어떻게 이 일들을 하게 될까?
OS는 시스템이 정확하게 동작하고, 그 와중에서도 편리하게, 효율적이게 동작하도록 한다.
이를 어떻게 구현을 하는가
- 정책(policy)과 기법(Mechanism)으로 이를 해결하게 된다.
- 정책 : 어떻게 위를 해결할지에 대한 아이디어
- 기법 : 정책을 구현하기 위한 방법
오리엔테이션 시간이긴 했지만, 수업을 통해서 이번 강의가 어떤 공부를 하게 될지 알게 되었다. 또한 프로세스의 실행과정을 토의를 통해서 각각 생각해보는 시간을 가짐으로서, 수업에 대한 집중도를 높이고 흥미가 생겼다고 생각한다.