일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Svelte
- SWIFT
- 계명대
- 개발자
- 리액트 예제
- HTML
- Hitit
- 계명대 이종호
- queue
- 자료구조
- 스벨트
- 호키스
- 힛잇
- 개발
- 이종호
- 스위프트
- hokeys
- 자스민
- 호키도키
- javascript
- data structure
- 자바스크립트 자료구조
- IOS
- 자바스크립트
- TDD
- react
- 비동기
- jest
- 리액트
- hokidoki
- Today
- Total
Dog foot print
[복습하는 OS] 운영체제 구조 Chapter 2 본문
Operating System Service
운영체제는 프로그램을 실행시켜주는 환경을 프로그램과 USER에게 제공한다.
Os services
- User Interface : 사용자가 컴퓨터 환경을 편리하게 사용할 수 있도록 제공해주는 사용자와 컴퓨터간의 대화 수단이다.
- Program execution : 사용자가 실행하고자 하는 프로그램은 메모리에 적재 되어야 실행이 가능하다. 운영체제는 사용자 프로그램을 실행하도록 서비스를 제공하며, 프로그램의 종료 또한 책임진다.
- I/O operations
- file-system manipulation : 사용자는 2차 저장장치에 파일들을 보관한다. 이 파일들은 디렉토리라는 트리 구조로 이루어져 있으며, 만약 이 file-system을 운영체제가 찾아주지 못한다면 사용자가 직접 모든 디스크의 섹터를 찾아가며 파일을 load해야 할 것이다.
- Error-detection : 컴퓨터의 하드웨어는 아주 다양한 이유로 에러가 존재 할 수 있다. 가령 프로그램이 1452번지 메모리에서 데이터를 load하라고 지시한 경우 실제 메모리에 1452번지에 데이터가 존재하지 않을 수 있고, 다른 프로그램이 사용중인 영역일 수 있다. 이런 경우 OS는 인터럽트의 소프트웨어 개념인 trap을 발동한다. OS는 이러한 에러를 찾기도하며, 미연의 방지 및 디버깅 또한 한다.
- Resource allocation : 컴퓨터의 자원이라 하면 CPU, main memory, file storage등 다양하게 존재하는데, 이러한 자원을 무분별하게 사용자가 손을 대는 것은 극히 위험한 일이다. 자칫 잘못하면 시스템을 망가뜨릴수도 있기 때문에 OS는 이러한 자원의 할당과, 관리를 담당한다.
- accounting : 현재는 개인 컴퓨터가 존재하지만, 예전에는 그러하지 못했다. 다수의 사용자가 한개의 컴퓨터를 사용했고, 이는 어느 사용자가 어느 자원을 사용하고 있는지 파악할 필요가 있었다.
- protection and security : OS는 내부와 바깥의 공격으로 부터 컴퓨터의 자원을 보호한다.
OS system structure
이번 장에서는 간단하게 MS dos와 계층화된 OS 및 Micro kernel을 중점적으로 볼 것이다.
MS DOS
ms dos는 90년대 생은 대부분 이름은 들어 보았지만, 실제로 사용해보지는 않았다. 그도 그럴 것이 우리는 이미 GUI로 OS가 UI를 제공해주고 있었으며, CMD같은 터미널은 보지도 않았기 때문이다.
MSdos는 사용자가 많은 활동을 할 수 있도록 많은 기능을 제공해주었으며, 다음과 같은 구조로 구성되어 있다.
굉장히 깔끔한 모습을 보여주고 있는데, 이 구조의 단점은 사용자가 하드웨어를 제어 할 수 있다는 위험한 것인데, 가령 예를 들어 사용자가 모니터나 I/O 장치등에 영향을 미칠 수 있고, 시스템에 직접 손을 댈 수 있었다. 그렇기에 사용자가 잘못된 동작으로 시스템 전체를 망가뜨릴수도 있다.
UNIX
unix는 open 되어 있는 OS로 요즘에는 워낙에 종류가 많아서 구조가 다양하지만, UNIX의 알맹이는 두개의 분리된 파트로 구성되어 있다.
바로 System program과 kernel 영역이다. 커널은 운영체제가 하드웨어를 관리하는 핵심영역이며, MS-DOS와 달리 USER APP이 직접 하드웨어를 관리 할 수 없게 만들어 그 안정성을 높였다.
Microkernel system structure
MS-dos나 Unix의 단점 중 하나는 OS가 너무 많은 기능을 제공 한다는 점이다. 그렇기에 User program이 어떤 명령을 수행 할 때 kernel로 system call을 호출하며 발생하는 over head도 발생하고 부팅시에도 오래 걸렸다. 그래서 micro kernel이 등장하게 되었고, 이 micro kernel은 최소한의 하드웨어 관리에 필요한 영역을 남겨두고 나머지 기능들을 user 수준에서 해결 할 수 있도록 하였다.
이 마이크로 커널은 운영체제가 더욱 단순화되었기 때문에, 사용자는 필요기능만 OS에 추가하는 모듈방식으로 OS를 확장 할 수 있었다.