티스토리 뷰

1. OS(Operating System)

: 운영체제 - 자원관리자

  ①프로그램이 수행되기 쉬운 환경 제공

  ②메모리, CPU, I/O등의 자원 관리

  ③시스템이 제대로, 효율적으로 작동하도록 해줌

 

*Fetch

: Main memory -> cpu

 

*Load

: Disk -> Main memory

 

- OS가 관리하는 자원

1. 물리적 자원 : CPU, DRAM, Disk. Flash, Device, Network 등

2. 가상 자원 : Process, Thread(from CPU) / Virtual memory, Page(from DRAM) / File, Directory(from Disk, Flash) / Driver(from Device) / Protocol(from Network) 등

 

*가상화 : 물리적 자원을 더 사용하기 쉬운 가상의 형태로 변환해주는 것

2. System call : OS가 제공하는 API

①Process Control : fork(), exit(), wait()

② File Manipulation : open(), read(), write(), close()

③Device Manipulation : ioctl(), read(), write()

④nformation Maintenance : getpid(), alarm(), sleep()

⑤Communication : pipe(), shmget(), mmap()

⑥Protection : chmod(), umask(), chown()

 

-역할 : Mode switch

PC는 OS가 죽으면 모든 사용자 프로그램이 죽게된다. 이러한 일을 방지하기 위해 모드를 사용자 프로그램이 동작하는 user mode와 OS가 동작하는 kernel mode 두가지로 구분한다.  그런데 가끔 사용자 프로그램이 새로운 파일을 만들어달라는 등 OS에 요청을 해야할 때가 있다. 시스템콜은 이때 두 모드 사이의 징검다리 역할을 해주며 자원들을 사용자에게 제공해주는 인터페이스이다.

그 예로 CPU, Memory, disk등의 자원을 좀 더 사용하고 싶을 때 직접 접근하는 것이 아니라 시스템콜을 사용해 os에 부탁한다. 

시스템콜 프로세싱 과정

[user mode -> kernel mode]
1. 시스템콜 호출 (ex fork())
2. trap
3. save context and switch stack(상태 저장)
4. trap hander로 이동
5. 커널모드 진입

[kernel mode -> user mode]
6. 시스템콜로 돌아옴
7. switch stack, restore context(문맥 복구)
8. 시스템콜 다음 명령어로 이동
9. 유저모드 진입

* trap이란?
트랩은 kernel모드에 진입하기 위해 사용하는 특별한 명령어이다. 
하드웨어 interrupt와 달리 소프트웨어적 흐름의 변화를 가지고 있어 소프트웨어 interrupt라고 불린다. 

 

* os에서 trap을 어떻게 사용하는가?

1. trap handler를 array처럼 모아놓은 trap table을 사용한다 (trap table은 OS에서 관리)

2. trap handler는 trap이 발생했을 때 처리해주기 위한 함수이며, trap table에서 아래와 같이 각 trap번호를 함께 가지고 있다.

 

3. 만약 system call을 걸면 trap번호를 같이 주어 trap hanlder함수를 실행한다. 위의 그림에서는 trap번호 80을 주어 system_call()핸들러를 수행한다.

4. trap table은 부팅하는 과정에서 초기화한다.

'학교수업 > 운영체제' 카테고리의 다른 글

[운영체제] 3. Limited Direct Execution  (1) 2024.02.02
[운영체제] 2. Processes  (2) 2024.01.29
[운영체제] 1. OS Introduction  (0) 2024.01.18
[운영체제] 정리 전 회고  (2) 2024.01.18
가상화 (Virtualization)  (0) 2021.04.07
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
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
글 보관함