보글보글 개발일지
Published 2023. 3. 8. 22:26
[OS] 시스템 콜 코딩기록/CS
반응형

커널이란?

  • 커널은 운영체제 중 항상 메모리에 올라가있는 운영체제의 핵심 부분. 파일 입출력, 프로세스 관리 등과 같이 운영체제의 기능을 담당. 하드웨어와 응용프로그램 사이에서 인터페이스 제공하는 역할, 컴퓨터 자원 관리하는 역할.
  • 커널은 사용자가 시스템 콜을 통해 컴퓨터 자원을 사용할 수 있는 자원 관리자.
  • 커널의 유형: 모놀리식, 마이크로 커널 - https://minkwon4.tistory.com/295
  • 커널에 사용자 모드로 접근할 수 없다. 따라서 커널의 기능을 사용하기 위해 운영체제에서 시스템 콜 제공.

시스템 콜이란?

  • 커널이 제공하는 서비스에 대해 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스
  • 시스템 콜은 커널과 사용자 사이의 인터페이스 역할을 하는 것으로 쉘(Shell)에서 명령어나 서브 루틴 형식으로 운영체제의 기능을 호출할 수 있음. 즉, 사용자가 직접 커널에 접근을 할 수 없기 때문에 시스템 콜을 활용해야함
  • 보통 시스템 콜을 직접 사용하기 보단, 해당 시스템 콜을 사용해서 만든 각 언어별 라이브러리(API)를 사용함→운영체제의 기능을 호출하는 함수
  • →즉, 사용자 프로세스가 소프트웨어 인터럽트를 통해 커널을 이용하기 위한 서비스를 요청하는 하나의 방법

시스템 콜 예시

cp a.txt b.txt : 파일의 복사본을 만들어 내려고 하면?

  1. open a.txt, open b.txt : a.txt 파일을 열고 b.txt파일을 새로 만들어냅니다.
  2. read a.txt => write b.txt : a.txt의 내용을 읽고 b.txt에 내용을 씁니다.
  3. close a.txt b.txt : 두 파일을 닫습니다.

위 과정에서 open 2번, read/write, close 2번 총 6번의 시스템 콜이 일어났습니다.

시스템 콜 유형

  1. 프로세스 컨트롤
  2. 파일 매니지먼트
  3. 디바이스 매니지먼트
  4. 정보관리
  5. 커뮤니케이션
  6. 보안

시스템 콜 처리 방식

  • 사용자 프로세스가 시스템 콜을 요청하면 제어가 커널로 넘어옴(사용자 모드→ 커널 모드)
  • 커널은 내부적으로 각각의 시스템 콜을 구분하기 위해 기능별로 고유번호를 할당하고 그 번호에 해당하는 제어루틴을 커널 내부에 정의
  • 커널은 요청받은 시스템 콜에 대응하는 기능번호를 확인
  • 커널은 그 번호에 맞는 서비스 루틴을 호출
  • 서비스 루틴을 모두 처리하고 나면 커널모드에서 사용자 모드로 다시 전환

 

쉘이란?

  • 운영체제가 사용자 인터페이스를 제공하는 방식.
    • 쉘을 통해 사용자가 운영체제의 기능과 서비스 조작할 수 있도록 인터페이스 제공
    • 터미널 환경, GUI 환경 두가지가 있다.

운영체제의 듀얼모드

사용자와 운영체제는 시스템 자원을 공유.

사용자가 메모리 내의 주요 운영체제 자원을 망가뜨리는 것을 막기 위해 시스템 자원 접근을 제한하는 보호 장치
→ 사용자 모드/커널 모드로 나뉨.

반응형

'코딩기록 > CS' 카테고리의 다른 글

[OS] 단기, 중기, 장기 스케줄러  (0) 2023.03.09
[OS] 프로세스 메모리 구조  (0) 2023.03.09
[OS] 프로세스  (0) 2023.03.08
[OS] 인터럽트  (0) 2023.03.08
[OS] 운영체제  (0) 2023.03.08
profile

보글보글 개발일지

@보글

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!