/*
* made by so_Sal
*/
1. Hardware.
2. Operating system.
3. Application program.
4. Users. ( machine user도 포함한다.)
이렇게, Operating system은 User가 hardware에 쉽게 접근하도록 도와주는 역할을 한다.
Definition : A program that acts as an intermediary between a user of computer and hardware.
OS는 굉장히 작게 시작하여 점점 내용들이 덧붙여졌는데, 앞으로도 어떻게 더욱 커질지는 알 수 없다.
따라서 정확히 정의되지 않고, 책 혹은 사전마다 정의가 다르다.
OS is a resource allocator.
여기서 resource는 computer hardware를 말하는데,
프로세스들이 hardware를 점거하기 위해 os에 요청을 보내면,
효율적이고 공정하게 프로세스에게 resource를 사용하도록 허가하는 역할을 한다.
OS is a control program.
컴퓨터의 에러나 잘못된 resource 사용으로부터 보호해주는 controller 역할을 한다.
그림 : A modern computer system.
Resource를 사용하기 위해 사용자는 OS에게 operation을 요청하는데,
모든 operation은 memory를 거치게 된다.
CPU는 직접 접근할 수 있는 메모리는 RAM밖에 없다. (Cache는 예외)
프로세스는 자신의 모든 Instruction, Data를 RAM에 올려놓고 CPU에게 제어를 맡긴다.
하나의 CPU로는 하나의 프로세스 instruction set을 실행할 수 밖에 없는데,
이때 OS는 concurrent한 작업을 수행하기 위해 multiprogramming 과 time-sharing 2가지 방법을 쓴다.
Multiprogramming
CPU가 하나의 프로세스를 실행하는데, 프로세스가 대기상태를 가지게 되면 ( I/O 작업 등에 의한)
다른 프로세스의 루틴으로 switch 하게된다.
Timesharing
각 프로세스마다 시간을 부여해서 계속 switching 하는 방법이다.
respnse time의 단위는 매우 짧다.
Context switch
대기상태의 프로세스가 CPU를 점거하려 할 때,
현재 실행되고있는 프로세스의 Register set들을 저장한 후
자신의 Register set을 CPU에 적재한 후 실행상태로 바꾸는 과정
Context switch 과정에서 interrupt가 발생한다.
Interrupt
Service routine을 바꿔주는 신호.
프로세스가 인터럽트 신호를 받게되면
현재 실행되는 instruction의 Program counter는 저장되어
다시 CPU 제어권을 찾았을 때 이전에 실행하던 위치부터 다시 실행된다.
DMA : Direct Memory Access
I/O 가 Resource를 굉장히 많이 사용하는데, CPU가 메모리 싸이클을 중재해주기 때문이다.
Device와 Memory가 직접 연결되어있으면 항상 CPU를 거쳐야 하는 비효율적 구조를 극복할 수 있다.
Symmetric Multiprocessing, Dual-core design
경재적인 이유 때문에, 대부분 dual-core를 사용한다.
User-mode, Kernel-mode
System-call
OS에서 지원하는 함수들로 User가 하드웨어에 직접적으로 접근할 수 있는 권한을 얻는 유일한 방법.
read, write, unlink, rmdir 등, 하드에 파일을 새로 만들거나 읽는 하드웨어 접근을 하기 위해서는
운영체제에 권한을 얻어야 한다. 이렇게 권한을 둔 이유는 보안상 이유때문이며
일반유저가 하드웨어에 직접적으로 접근하는 유일한 수단이기도 하다.
참고도서 : Operating system concepts 8th edition. - Wiley
Abraham Silberschatz, Peter B. Galvin, Greg Gagne.
'Major Study. > Computer Science' 카테고리의 다른 글
Multithreading models, 스레드의 개념 (0) | 2014.07.17 |
---|---|
Linux File system-call assignment (0) | 2014.07.17 |
데이터베이스 DBMS 시스템 개요, 개념 (0) | 2014.07.17 |
DBMS 기본 DB 개념 및 용어 (0) | 2014.07.17 |
네트워크 소프트웨어의 계층 구조 (0) | 2014.07.17 |