-
3. Dual Mode / System Call / OS ServiceCS/OS 2022. 5. 11. 15:01
앞선 장에서 언급하였듯이, OS는 App 이 Hardware 접근을 직접하지 못하도록 한다고 하였다.
사용자가 하드웨어의 자원에 접근하는 것은 매우 위험한 동작이다.
만약에 Hardware 접근을 직접 할 수 있다면, 서버 컴퓨터에 접근하여 강제 종료 명령어를 넣는다던지 하여 동작을 멈출 수 있다.
이러한 문제들을 막기 위해 Dual Mode라는 개념이 나왔다.
Dual Mode
CPU 내부의 레지스터(register)의 비트(bit)를 활용하여 플래그(flag)
User Mode = 0 / Kernel Mode = 11. User Mode
Application 과 같이 User가 사용하고 있는 영역
Hardware resource 접근 X ( 요청하려면 System Call 필요 )
2. Supervisor Mode( Privileged Mode )
관리자 모드에서만 내릴 수 있는 명령을 Privileged instruction이라고 하며, STOP / HALT / RESET / SET_TIMER 등의 명령어가 존재한다.
User Mode에서 Privileged instruction 내리면 CPU에서 Internal Interrupt 를 발생시켜 Program을 종료시킨다.
일반적으로 App이 실행된 뒤에 Hardware를 접근하는 경우에 Kernel 영역 내에 Os에 요청하여 처리한다. (System Call)
애플리케이션이 실행하는 동안에는 위와 같은 모드 변경이 반복적으로 일어나는 것을 볼 수 있다. 대부분의 CPU는 이중 모드를 지원한다.
System Call ( Software Interrupt )
OS Kernel이 제공하는 서비스에 대해, Applicatoin의 요청에 따라 커널에 접근하기 위한 인터페이스
->OS Service를 접근하기 위한 유일한 수단입니다.
프로그램을 실행하거나 프로그램이 컴퓨터 자원을 사용하기 위해서는 System Call을 통해 Kernel에 Resource 요청을 해야 합니다.OS 내에 어떤 Service를 사용 가능한건지 알아보자.
OS Service
1. Process Management
프로세스는 실제 메인 메모리에서 실행 중인 프로그램(program in execution)을 말한다.
프로그램은 하드디스크와 같은 보조기억장치에서 아무런 동작을 하지 않는 상태이다.
주요 기능
-> Process Create / Delete / Suspend / Resume / IPC(프로세스 통신) / Process Sync / DeadLock handling
2. Main Memory Management
주요 기능
-> Process에게 Memory allocate / deallocate
Virtual Memory / Process 별 Memory Trace
3. File Management
디스크는 물리적으로 Track과 sector로 구성되어 있으며, 여기서 파일이라는 논리적 관점으로 데이터를 바라보고 관리
File Create / Delete
Directory Create / Delete
open / close / read / write / create / delete
backup / file mapping
4. Secondary store management
보조기억장치는 대표적으로 하드 디스크, 플래시 메모리(주로 스마트폰에 사용)가 있다.
아무 것도 저장되어 있지 않는 공간을 block이라 하는데, 보조기억장치 관리는 이를 관리하는 것이다.
Free Space management / Storage allocation / Disk Scheduling
5. I/O device management
입출력 장치의 성능향상: buffering, caching, spooling
6. System Call
유저 프로세스에서 운영체제 서비스를 필요로 할 때 이를 받기 위해 사용하는 호출이다.
- Process: end(정상 종료), abort(강제 종료), load, execute, create, terminate, get/set, attributes, wait event, signal event
- Memory: allocate, free
- File: create, delete, open, close, read, write, get/set attributes
- Device: request, release, read, write, get/set attributes, attach/detach devices
- information: get/set time, get/set system data
- Communication: socket, send, receive
Reference
https://latter2005.tistory.com/43
'CS > OS' 카테고리의 다른 글
XV6 - 이론 정리_2 (0) 2022.05.13 XV6 - 이론 정리_1 (0) 2022.05.13 2.OS 역사 (0) 2022.05.06 1. 운영체제(OS)란? (0) 2022.05.06 6. Thread (0) 2022.04.27