- 하드웨어/소프트웨어 자원을 효율적으로 관리해주는 시스템 소프트웨어
- 사용자가 컴퓨터를 쉽게 다룰 수 있게 해주는 인터페이스
역할 | 세부사항 |
---|---|
프로세스 관리 | - 프로세스, 스레드 - 스케줄링 - 동기화 - IPC 통신 |
저장장치 관리 | - 메모리 관리 - 가상 메모리 - 파일 시스템 |
네트워킹 | - TCP/IP - 기타 프로토콜 |
사용자 관리 | - 계정 관리 - 접근권한 관리 |
I/O 디바이스 관리 | - 순차접근 장치 - 임의접근 장치 - 네트워크 장치 |
- 운영체제에서 작동하는 응용 프로그램을 관리하는 기능
- 프로세서(CPU)를 관리하는 것이라고 볼 수도 있음
- CPU 소유권 할당, 프로세스 생성/삭제, 자원 할당 및 반환 등 관리
- 1차 저장장치에 해당하는 메인 메모리와 2차 저장장치에 해당하는 하드디스크, NAND등을 관리하는 기능
1차 저장장치 (Main Memory)
- 프로세스에 할당하는 메모리 영역의 할당과 해제
- 각 메모리 영역 간의 침범 방지
- 메인 메모리의 효율적 활용을 위한 가상 메모리 기능
2차 저장장치 (HDD, NAND Flash Memory 등)
- 파일 형식의 데이터 저장
- 이런 파일 데이터 관리를 위한 파일 시스템을 OS에서 관리
- 컴퓨터 활용의 핵심
- TCP/IP 기반의 인터넷에 연결하거나 응용 프로그램이 네트워크를 사용하려면
운영체제에서 네트워크 프로토콜 지원 필요
- 현재 상용 OS들은 다양하고 많은 네트워크 프로토콜 지원
- 하나의 PC를 여러 사람이 사용하는 경우 운영체제는 각 계정을 관리할 수 있는 기능 필요
- 파일이나 시스템 자원에 접근 권한 지정할 수 있도록 지원
- 시스템에 연결된 하드웨어를 운영체제에서 인식하고 관리해 응용 프로그램이 하드웨어를 사용할 수 있게 함
- 운영체제 안에서 하드웨어를 추상화해주는 계층
GUI, 시스템콜, 커널, 드라이버가 OS에 해당
- 사용자가 컴퓨터와 상호작용할 수 있도록 하는 사용자 인터페이스의 한 형태(그래픽)
- 아이콘을 마우스로 클릭하는 동작으로 컴퓨터와 상호작용 가능
CUI: 그래픽이 아닌 명령어로 처리하는 인터페이스
- 운영체제가 커널에 접근하기 위한 인터페이스
- 유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 씀
- 유저 프로그램이 I/O 요청으로 트랩을 발동하면 올바른 I/O 요청인지 확인한 후
유저 모드가 시스템콜을 통해 커널 모드로 변환되어 실행됨
- 컴퓨터 자원에서 대한 직접 접근 차단 → 프로그램을 다른 프로그램으로부터 보호
- (프로세스, 스레드, 메모리) → 시스템콜 → 커널 → OS
- 하나의 추상화 계층
→ 네트워크 통신, 데이터베이스같은 낮은 단계의 영역 처리를 많이 신경 쓰지 않고 프로그램 구현 가능
- 운영체제의 핵심 부분이자 시스템콜 인터페이스를 제공
- 보안, 메모리, 프로세스, 파일 시스템, I/O 디바이스, I/O 요청 관리 등 운영체제의 중추적 역할 수행
- 하드웨어를 제어하기 위한 소프트웨어