Tech Log

[Operating System] 운영체제 개요 본문

Computer Science/Operating System

[Operating System] 운영체제 개요

yuhee kim 2023. 1. 27. 20:22

 

 

운영체제

사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스.

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

예) PC 운영체제(Mac OS, Windows, 유닉스, 리눅스 등), 모바일 운영체제(iOS, 안드로이드 등)

 

*운영체제와 유사하나 소프트웨어를 추가로 설치할 수 없는 것이 펌웨어(Firmware). 펌웨어는 특정 하드웨어에 포함된 소프트웨어를 말한다.

 

운영체제의 역할

  1. CPU 스케줄링과 프로세스 관리 : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당반환 관리
  2. 메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼마큼 할당할지를 관리
  3. 디스크 파일 관리 : 디스크 파일의 보관 방법을 관리
  4. I/O 디바이스 관리 : I/O 디바이스들(마우스, 키보드 등)과 컴퓨터 간에 데이터를 주고 받는 것을 관리
  5. 자원 보호 : 비정상적인 작업으로부터 컴퓨터 자원을 보호, 사용자가 직접 자원에 접근하는 것을 막음으로써 컴퓨터 자원을 보호.

 

운영체제의 구조

출처 : 쉽게 배우는 운영체제(2018)

  • 인터페이스(GUI) : 사용자가 전자장치와 상호 작용할 수 있도록 하는 사용자 인터페이스의 한 형태, 단순 명령어 창이 아닌 아이콘을 마우스로 클릭하는 단순한 동작으로 컴퓨터와 상호작용할 수 있도록 함
  • 시스템 호출(시스템콜) : 운영체제가 커널에 접근하기 위한 인터페이스, 유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용, 커널이 자신을 보호하기 위해 만든 인터페이스, 사용자나 응용 프로그램으로부터 컴퓨터 자원을 보호하기 위해 자원에 직접 접근하는 것을 차단.
  • 커널 : 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것
  • 드라이버 : 하드웨어를 제어하기 위한 소프트웨어, 커널과 하드웨어의 인터페이스를 담당하며 디바이스 드라이버라고도 불림, 마우스와 같이 간단한 제품은 드라이버를 커널이 갖고 있으나 그래픽 카드와 같이 복잡한 하드웨어의 경우 제작자가 드라이버를 제공.

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

 

시스템 호출(시스템콜) 과정

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

*트랩(trap) : 트랩은 Interrupt의 한 종류로서 명령의 수행 결과로 발생,  주로 시스템콜을 호출할 때나 Segmentation fault(할당되지 않은 메모리 참조)로 인해 발생

*인터럽트(Interrupt) : 어떤 신호가 들어왔을 때 CPU를 잠깐 정지시키는 것, 키보드, 마우스 등 IO 디바이스로 인한 인터럽트, 0으로 숫자를 나누는 산술 연산에서의 인터럽트, 프로세스 오류 등으로 발생

 

출처 : 면접을 위한 CS 전공지식 노트(2022)

  1. I/O 요청인 fs.readFile()이라는 파일 시스템의 파일을 읽는 함수가 발동
  2. 유저 모드에서 파일을 읽지 않음
  3. 유저 모드에서 커널 모드로 들어가 파일을 읽음
  4. 다시 유저 모드로 돌아옴
  5. 유저 프로그램의 로직 수행

위 과정을 통해 컴퓨터 자원에 대한 직접 접근을 차단할 수 있고 프로그램을 다른 프로그램으로부터 보호할 수 있다.

*I/O 요청 : 입출력 함수, 데이터베이스, 네트워크, 파일 접근에 관한 일

 

출처 : 면접을 위한 CS 전공지식 노트(2022)

 

프로세스와 스레드에서 운영체제로 어떤 요청을 할 때는, 시스템콜이라는 인터페이스와 커널을 거쳐 운영체제에 요청이 전달된다.

시스템콜은 추상화 계층이므로 네트워크 통신이나 데이터베이스와 같은 낮은 단계의 영역 처리에 대한 부분을 많이 신경쓰지 않고 프로그램을 구현할 수 있다.

*추상화 계층 : 특정한 집합 기능의 자세한 부분을 숨기는 기법

 

modebit

1 또는 0의 값을 가지는 플래그 변수, 시스템콜이 작동될 때 modebit를 참고하여 유저 모드와 커널 모드를 구분한다.

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

 

만약 유저 모드 기반으로 카메라가 켜진다면 사용자가 의도하지 않았는데 공격자가 카메라를 갑자기 켤 수 있다.

이러한 위험은 운영체제를 통해 작동해야 막기가 쉽다.

다음 그림과 같은 과정을 통해 I/O 디바이스가 작동한다.

출처 : 면접을 위한 CS 전공지식 노트(2022)

이를 위한 장치가 modebit이다.

modebit의 0은 커널 모드, 1은 유저 모드이다.

 

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

*커널 모드 : 모든 컴퓨터 자원에 접근할 수 있는 모드

 

 

참조
  • 주홍철, 면접을 위한 CS 전공지식 노트, 길벗(2022)
  • 조성호, 쉽게 배우는 운영체제, 한빛아카데미(2018)
  • Joogle
Comments