본문 바로가기
교재 및 CS공부/CS스터디

[CS스터디]면접을 위한 CS 전공지식 노트 #10

by veganwithbacon 2022. 11. 8.
반응형

운영체제(OS, Operating System)는 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스

한정된 메모리나 시스템 자원을 효율적으로 분배한다. 

운영체제와 유사하나 소프트웨어를 추가 설치할 수 없는 것을 펌웨어(firmware)라고 한다.

 

✅3.1 운영체제와 컴퓨터

 

✅3.1.1 운영체제의 역할과 구조

1️⃣운영체제의 역할

1. CPU 스케줄링과 프로세스 관리

      : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리

2. 메모리 관리

      : 한정된 메모리를 어떤 프로세스에 얼마만큼 할당해야 하는지 관리

3. 디스크 파일 관리

      : 디스크 파일을 어떠한 방법으로 보관할지 관리

4. I/O 디바이스 관리

      : I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리

 

2️⃣운영체제의 구조

GUI/CUI, 시스템콜, 커널, 드라이버 부분이 운영체제를 지칭한다.

종종 CUI가 없고 CUI만 있는 리눅스 서버도 있다.

더보기

- GUI

사용자가 전자장치와 상호 작용할 수 있도록 하는 사용자 인터페이스의 한 형태, 단순 명령어 창이 아닌 아이콘을 마우스로 클릭하는 단순한 동작으로 컴퓨터와 상호작용하게 해줌

 

- 드라이버

하드웨어를 제어하기 위한 소프트웨어

 

- CUI

그래픽이 아닌 명령어로 처리하는 인터페이스

 

3️⃣시스템콜

: 운영체제가 커널에 접근하기 위한 인터페이스

  유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 쓴다.

 

  유저 프로그램이 I/O 요청으로 트랩(trap)을 발동하면 올바른 I/O 요청인지 확인 후 유저 모드가 시스템콜을 통해 커널 모드로 변환되어 실행된다.

만약 유저프로그램이 I/O 요청을 위한 트랩을 발동했다고 하면 다음과 같은 과정이 발생한다.
1. 유저 프로그램이 I/O 요청 트랩발동
2. 올바른 I/O 요청인지 확인
3. 유저 모드가 시스템콜을 통해  커널 모드로 변환한 후 커널함수를 실행
4. 그 후 다시 유저 모드로 돌아가 유저 프로그램의 로직 수행

 

용어

- I/O 요청

: 입출력 함수, 데이터베이스, 네트워크, 파일 접근 등에 관한 일

 

- 드라이버

: 하드웨어를 제어하기 위한 소프트웨어

 

위 그림처럼 프로세스나 스레드에서 운영체제로 어떤 요청 시 시스템콜이라는 인터페이스/커널을 거쳐 운영체제에 전달된다. 

시스템콜은 하나의 추상화 계층으로, 낮은 단계의 영역 처리에 대해 신경쓰지 않고 프로그램을 구현할 수 있는 장점이 있다.

 

Modebit

시스템콜이 작동될 때 modebit을 참고해 유저/커널 모드를 구분

modebit은 1 또는 0의 값을 가지는 플래그 변수

카메라,키보드 등 I/O 디바이스는 운영체제를 통해 작동해야한다

 

커널모드를 통해 운영체제를 작동시키면 100% 공격을 막을 수 있는 것은 아니나, 운영체제를 통한 작동을 해야 막기가 쉽다. 이게 무슨말이냐 하면~ 이럴 때 필요한 게 modebit이다 이말입니다.

똑딱이 느낌으로 modebit의 0은 커널 모드, 1은 유저 모드라 설정되고,  유저 모드일 경우 시스템콜을 못하게 막아 한정된 일만 가능하게 한다.

 

유저 프로그램이 카메라를 이용시 시스템콜을 호출하고, modebit 1에서 0으로 바꿔 커널모드로 전환한다.

카메라 자원을 통한 로직을 수행하고 다시 modebit을 0에서 1로 바꿔준다.

 

용어

- 유저 모드

유저가 접근할 수 있는 영역을 제한적으로 두며 컴퓨터 자원에 함부로 침범 못하는 모드

 

- 커널 모드

모든 컴퓨터 자원에 접근가능한 모드

 

- 커널

운영체제의 핵심 부분/ 시스템콜 인터페이스를 제공

반응형

댓글