컴퓨터 하드웨어 사이에 중계 역할을 하면서 컴퓨터의 모든 자원과 프로그램 실행을 관리하고 제어하는 시스템 소프트웨어.
운영 체제가 하드웨어와 응용프로그램 사이에 중계 역할을 위해 시스템 콜, 인터럽트 2가지 인터페이스를 두고 있다.
운영체제는 자원에 대한 접근과 관리 권한을 오직 운영체제에만 두는, 독점 관리
를 한다.
파일이 생성되고 삭제되는 과정에서 디스크의 빈 영역을 관리하고, 파일이 저장되는 위치를 결정하고, 디스크에 파일을 기록하거나 읽는 행위는 모두 운영체제에 의해 실행된다.
따라서 사용자와 응용 프로그램은 시스템 콜
을 통해서만 커널에 접근할 수 있다.
독점 관리를 통해 사용자와 응용 프로그램으로부터 자원에 대한 손상을 마고 여러 프로그램이 자원을 공유할 수 있도록 한다.
컴퓨터 자원은 하드웨어 자원, 소프트웨어 자원, 데이터 자원을 포함한다.
- 하드웨어 : CPU, 메모리, 키보드 등
- 소프트웨어 : 프로그램
- 데이터 : 파일, 데이터베이스 등
구성
운영체제는 도구/GUI 소프트웨어, 커널, 디바이스 드라이버들로 구성된다.
1. 도구/GUI 소프트웨어
- 사용자가 컴퓨터를 편리하게 사용할 수 있도록 운영체제 패키지에 포함되어 제공되는 프로그램
- Window 운영체제를 예로 들면 파일 탐색기, 작업 관리자, 제어판, 장치 관리자 등이 있다.
2. 커널
- 컴파일된 바이너리 형태로 운영체제가 설치되어있는 하드디스크의 특정 영역에 있다가 부팅 후부터 메모리에 적재되며, 운영체제가 수행하는 모든 핵심 작업을 관리한다.
- 프로세스와 스레드 관리
- 메모리 관리
- 파일 생성, 삭제, 파일 입출력 등 파일 및 파일 시스템 관리
- 디바이스 드라이버를 호출하여 장치 입출력
3. 디바이스 드라이버
- 장치를 직접 제어하는 소프트웨어.
- 마우스의 움직임과 클릭을 인지하는 마우스 드라이버, 키보드 장치로부터 사용자가 입력한 키를 알아오는 키보드 드라이버 등이 있다.
특징
1. 추상화
- 운영체제는 컴퓨터 시스템 하드웨어를 사용자가 쉽게 다룰 수 있도록 추상화한다.
- CPU를 프로세스, 메모리를 메모리 관리, 디스크를 파일 및 incode와 같이 추상화된 개념으로 제공한다.
2. 가상화
- 작업을 수행하는 기본 방법 중 하나로 가상화를 사용한다.
- 하드웨어 자원을 하나로 보이게 하여 여러 프로세스가 병렬적으로 실행되는 것처럼 보이도록 한다.
- 가상화를 통해 CPU의 효율성을 최대화하고 더 많은 프로세스를 실행할 수 있게 한다.
- CPU의 가상화 : 하나의 CPU가 번갈아가면서 프로세스를 실행하며,
Context Switching
을 통해 구현한다. - 메모리의 가상화 : 실행 중인 각 프로세스는 가상 주소를 사용하여 동일한 주소에 메모리를 할당받아 각각 독립적으로 메모리를 사용하는 것처럼 보인다.
3. 병행성
- 운영체제는 여러 프로세스를 동시에 실행하며, 이를 조절하여 공유 데이터에 접근 시 발생할 수 있는 문제를 해결한다.
- 이를 위해
세마포어 락
,스레드
와 같은 개념을 사용한다.
4. 영속성
- 운영체제는 디스크에 파일을 쓰기 위한 기능을 제공하며, 데이터를 전원이 꺼져도 안전하게 저장한다.
'CS > OS' 카테고리의 다른 글
동기화 문제 (0) | 2024.04.23 |
---|---|
인터럽트(interrupt) (0) | 2024.04.05 |
데드락(Dead Lock) (0) | 2024.03.21 |
Cache (0) | 2024.03.20 |
프로세스 & 스레드 (0) | 2024.03.18 |