Kernel, System Call

Choooose·2023년 2월 3일
0

운영체제

목록 보기
1/8
post-thumbnail

최근 운영체제 스터디를 하는 중에 스터디원의 추천으로 괜찮은 강의로 스터디를 하게되서 이 강의와 공룡책 등 다양한 자료들로 공부하면서 운영체제에 대한 정리를 하려고 합니다.

부족한 정리일 수도 있고 잘못된 내용이 들어갈 수도 있지만 개인 공부를 기록한다는 느낌으로 시작해보려구요!

OS 구조


Kernel / Shell / Utility

  • kernel : 항상 메모리에 상주하는 운영체제의 일부 ( 독립된 프로그램 )
  • Utility(Command) : 디스크에 상주, 유저 요청 시에 가끔 메모리에 올라옴 ( PPT 같은 프로그램 )
    • Shell : 특별한 유틸, 언제 유틸을 메모리에 올릴지 정리를 해주는 역할

Other

file : 정보들, 리눅스, 유닉스에서는 I/O Device도 file로 취급한다.

전반적인 적재 과정

부팅 시 커널이 올라오고 그 다음 쉘이 올라온다.

쉘은 키보드에서 커맨드를 칠 때까지 기다리고 커맨드를 입력하면 맞는 유틸리티를 데려온다.

OS의 종류


리눅스

  • 멀티유저 시스템 → 자원을 최소화 하여 사용해야한다.
  • Protection을 고려해야한다.
  • CUI

윈도우

  • 싱글 유저 시스템 → 개인 사용자로 인해 자원을 최소화하여 사용하지 않아도 된다.
  • GUI

Protection


멀티 프로세스일때 다른 프로세스가 메모리를 침범하지 못하도록 해야한다.

CPU를 가지고 연산 시에 다른 메모리를 침범하지 못하도록 커널에 I/O를 요청하도록 하는데 이를 System Call 이라한다.

SystemCall

I/O 작업 등의 사용자 모드에서 일어날 수 없는 일을 처리하기 위해 요청하는 행위

CPU에는 mode bit 라는 이진 비트가 있는데 이때 mode 는 값에 따라서 사용자 모드, 커널 모드로 나뉜다.

커널 모드인 경우는 모든 메모리와 코드에 접근이 가능하다.

유저 모드인 경우는 로컬 메모리와 op-code를 일부 제한 ( I/O 작업 등 )하여 접근이 가능하다.

이때 로컬 메모리라는 것은 해당 프로그램이 가지고 있는 메모리를 의미한다.

User ModeKernel Mode
memory프로세스의 로컬 메모리전체 접근
op-code제한된 코드의 실행어떤 코드여도 실행

제한된 op-code : I/O 작업, 특별한 레지스터 작업(?)

일련의 프로세스 ( 코드 ) 가 수행되는 과정

1. CPU는 메모리로 주소를 던진다.

2. mode가 사용자 모드일때

3. MMU는 로컬 메모리로의 접근인지를 확인한다.

a. 로컬 메모리로의 접근이라면 접근을 허용한다.
b. 로컬 메모리가 아니라면 Trap을 발생 시킨다.
c. Trap이 발생되면 mode가 커널모드로 전환되고 해당 시스템콜을 처리할 수 있는 함수를 찾아 처리한다.
d. 처리 된 후에는 다시 mode가 사용자 모드로 전환된다.

4. 돌아갈 코드를 확인한다.

a. 컴파일러가 코드를 컴파일하고 코드가 실행된다.

5. 코드가 I/O 등의 제한된 작업이라면

a. 코드 내부에는 Trap을 발생시키는 코드(chmodk)와 해당 코드의 시스템콜 번호가 들어있다.
b. CPU를 반환하고 현재 프로세스의 상태를 저장한다.
c. Trap이 발생하고 다시 mode가 커널 모드로 전환된다.
d. Trap을 Trap Handler 내부의 dispatch table에서 필요한 작업을 찾아 처리한다.

6. 작업이 처리되었다면 다시 mode가 사용자 모드로 전환된다.

7. CPU를 받기위한 대기줄로 이동한다.

정리하면

SystemCall은 UserMode에서 수행할 수 없는 작업이 발생했을 시에 호출되어 mode의 전환이 일어나고 이때 KernelMode로 들어가 작업을 처리하도록 요청하는 행위이다.

참고 자료

고건 교수님 강의
https://olc.kr/course/course_online_view.jsp?id=35&cid=51

[운영체제] 유저모드와 커널모드에 대해서.
https://blockdmask.tistory.com/69

Operation System - OS.운영체제
https://probe29.tistory.com/18

System Call이란?
https://ju-hy.tistory.com/8

시스템 호출 - 위키백과, 우리 모두의 백과사전

운영체제 04 : 시스템 콜 (시스템 호출, System Call)
https://luckyyowu.tistory.com/133

운영체제 - YES24

0개의 댓글