- OS → Operating System의 약자로, 사용자가 컴퓨터를 쉽게 다루도록 인터페이스를 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하게 하는 일종의 소프트웨어를 말한다.
- 흔히 Window, Mac Os, Linux, Unix, Android, iOS 등이 있다.
- 자원 관리
- I/O 디바이스 관리 - 버퍼 캐싱 시스템 제공
- 디스크 파일 관리 - 파일 생성, 수정, 삭제, 백업 등
- 메인 메모리 관리 - 메모리 추적, 프로세스에 따른 메모리 할당
- 보조 스토리지 관리 - 스토리지 할당, 여유 공간 관리
- 네트워크 관리 - 네트워크 서비스 성능이나 오류 분석
- 자원 보호
- 보안 관리 - 시스템 보호 및 오류로 인한 손산 방지
- 하드웨어 인터페이스 제공
- 장치 드라이버 제공
- 소프트웨어 인터페이스 제공
- 명령어 해석 시스템 등
하드웨어가 제일 아래단에 위치한 아래 그림에서, 가운데 네 부분이 운영체제
에 해당한다.
운영체제의 구조에 대해 각각 더 자세하게 설명하자면 다음과 같다.
- 사용자가 아이콘을 마우스로 클릭하는 등의 상호작용을 할 수 있도록 하는 사용자 인터페이스의 한 형태
- 반드시 시스템콜을 통해서만 커널에 접근할 수 있다.
-
커널을 보호하기 위한 인터페이스
-
유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용
-
실행 과정
1. 유저 프로그램이 I/O의 요청으로 트랩 발동 2. 올바른 I/O 요청인지 확인 3. 유저 모드가 시스템콜을 통해 커널 모드로 변환되어 실행 ex) 파일을 읽는 경우, 유저 모드에서 읽지 않고 커널 모드로 들어가 파일을 읽고 다시 유저 모드로 돌아가 유저 프로그램의 로직을 수행한다. * I/O 요청: DB, 네트워크, 파일 접근, 입출력 함수 등에 관한 요청
-
효과
- 컴퓨터 자원에 대한 직접 접근 차단
- 프로그램을 다른 프로그램으로부터 보호할 수 있음
-
modebit
0(커널 모드)
또는1(유저 모드)
의 값을 가지는 플래그 변수- 시스템콜이 작동할 때 modebit을 참고하여 유저 모드와 커널 모드를 구분한다.
유저 모드
: 유저가 접근할 수 있는 영역. 컴퓨터 자원에 함부로 침입할 수 없음커널 모드
: 컴퓨터 자원에 접근할 수 있는 모드
- ex) 프로그램이 카메라를 이용하려고 할 때, 시스템콜을 호출하고 mobebit을 1에서 0(커널 모드)으로 변경한 후 카메라 자원을 이용한 로직을 수행한다. 이후 다시 0에서 1(유저 모드)로 변경하여 로직을 실행한다.
- 자원에 대한 직접 접근을 차단하기 때문에 자원을 이용하기 위해 시스템콜이라는 인터페이스를 필요로 한다.
- 보안, 메모리, 프로세스, 파일 시스템, I/O 디바이스 요청 관리 등 운영체제의 핵심적인 역할을 한다.
- 하드웨어의 인터페이스 역할