기타

[운영체제론] System Call

sujin7837 2021. 12. 11. 22:09
반응형

1장

-Multiprogramming : 여러 개의 프로그램을 동시에 실행하는 것

  1. CPU가 너무 많이 쉬도록 하는 것을 피하기 위한 방법
  2. memory를 각기 다른 job을 가지고 있는 몇 개의 partition으로 나눔
  3. 하나의 job이 I/O가 마무리될 때까지 기다리는 동안, 다른 job이 CPU를 사용할 수 있음

-System Calls : 프로그램이 os로부터 다양한 서비스를 제공받고자 할 때 사용할 수 있는 인터페이스

CPU의 2가지 모드 : 1. kernel mode 2. user mode

PSW(Program Status Word)의 bit가 mode를 조절함

  1. kernel mode : CPU는 어떤 instruction도 수행 가능
  2. user mode-I/O 와 memory protection이 허용되지 않음
  3. -user mode에서 OS의 서비스를 받으려면 system call을 통해 kernel mode로 trap in 해야 함
  4. -일부 명령어 집합에만 접근 가능

Trap instruction : user mode에서 kernel mode로 바뀌어 OS가 수행을 시작하도록 해줌

하드웨어 문제 발생 시에도 trap 발생

ex) read system call

  1. 스택에 nbytes 값 push
  2. 스택에 &buffer(버퍼의 주소) push
  3. file disk push
  4. library procedure read를 들여다봄
  5. OS에 system call의 number(code)가 여러 개 있는데, 그 중 read에 해당하는 code를 register에 넣음
  6. kernel로 trap in(trap instruction 수행 중)하여 kernel에서 OS가 수행됨
  7. register를 들여다봄
  8. system call handler의 주소를 찾음
  9. 다시 library procedure read로 돌아옴
  10. stack pointer 조정

UNIX : 1개의 library procedure를 가지고 있음

POSIX : 100개의 procedure call을 가지고 있음

제공하는 서비스

  1. 프로세스 생성 및 종료
  2. 파일 생성, 삭제, read, write, 디렉토리 관리
  3. I/O 수행
반응형