- 응용 프로그램과 하드웨어 사이에서 인터페이스 역할을 하며 컴퓨터 하드웨어를 관리한다.
- 운영체제는 시스템의 자원과 동작을 관리하는 시스템 소프트웨어의 일종이다.
- 좁은 의미 : 컴퓨터 전원을 켠 뒤 부팅이 일어난 이후로 항상 메모리에 상주하는 부분 = 커널 = 운영체제
- 넓은 의미 : 커널을 포함해 주변 시스템을 다루는 유틸리티
운영체제의 종류
Windows 98, Windows10, UNIX, LINUX, MS-DOS 등이 있다.
단일 작업 처리 시스템에는 DOS, 다중 작업 처리 시스템에는 WINDOWS, UNIX, LINUX 등이 사용된다.
주로 WINDOWS는 개인용, UNIX, LINUX는 서버용 운영체제로 사용된다.
운영체제의 목적
처리능력(Throughput) 향상 | 일정 시간 내에 시스템이 처리하는 일의 양 |
반환시간(Turn Around Time) 단축 | 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간 |
사용가능도(Availability) 향상 | 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도 |
신뢰도(Reliability) 향상 | 시스템이 주어진 문제를 정확하게 해결하는 정도 |
위 네 가지는 운영체제의 성능을 평가하는 기준이 된다.
운영체제의 분류
1. 동시 작업 가능 여부
- 단일 작업 (Single Tasking) : 한 번에 하나의 작업만 처리
- 다중 작업 (Multi Tasking) : 동시에 두 개 이상의 작업 처리
2. 사용자의 수
- 단일 사용자 (Single User)
- 다중 사용자 (Multi User) : 여러 계정, 동시 접속 가능
3. 처리 방식
- 일괄 처리 방식 (Batch Processing) : 작업이 주어질 때, 바로 바로 처리하는 것이 아니라 모아서 한꺼번에 일괄처리하는 것이다. 현대에는 찾아보기 어렵다.
- 시분할 방식 (Time Sharing) : 여러 작업이 수행이 될 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용한다. 일괄 시스템에 비해 짧은 응답 시간을 가진다. 각각 사용자가 Interactive한 방식으로, 사용자는 거의 실시간에 가깝게 느끼게 된다. 대부분의 운영체제가 여기에 속한다.
- 실시간 방식 (Realtime OS) : 시분할과 실시간 둘 다 빨라 보이지만, 실제 개념적으로는 상당히 다르다. 실시간 시스템은 데드라인이 있어서 정해진 시간 안에 반드시 결과가 나오는 것을 보장하는 시스템이다. 시분할 방식은 일반적인 범용 컴퓨터에서 사용되며, 실시간 방식은 특수한 목적을 가진 시스템에서 그 작얿이 반드시 정해진 시간 안에 처리되도록 하는 방식이다.
운영체제의 주요 자원 관리
1. 프로세스 관리 & CPU 스케줄링
운영체제에서 작동하는 응용 프로그램을 관리하는 기능이다. 어떤 의미에서는 프로세서(CPU)를 관리하는 것으로 볼 수 있다. 현재 CPU를 점유해야 할 프로세스를 결정하고, 실제로 CPU를 프로세스에 할당하며, 이 프로세스 간 공유 자원 접근과 통신 등을 관리하게 된다.
- 프로세스, 스레드
- 스케줄링
- 동기화
- IPC 통신
2. 저장장치 관리 (메모리 관리, 파일 관리)
- 1차 저장장치(Main Memory)
- 프로세스에 할당하는 메모리 영역의 할당과 해제
- 각 메모리 영역 간의 침범 방지
- 메인 메모리의 효율적 활용을 위한 가상 메모리 기능
- 2차 저장 장치(HDD, NAND Flash Memory 등)
- 파일 형식의 데이터 저장
- 이런 파일 데이터 관리를 위한 파일 시스템을 OS에서 관리
- FAT, NTFS, EXT2, JFS, XFS 등 많은 파일 시스템들이 개발되어 사용 중
- 메모리 관리
- 가상 메모리
- 파일 시스템
3. 네트워크
TCP/IP 기반의 인터넷에 연결하거나, 응용 프로그램이 네트워크를 사용하려면 운영체제에서 네트워크 프로토콜을 지원해야 한다. 현재 사용 OS들은 다양하고 많은 네트워크 프로토콜을 지원한다. 운영체제는 사용자와 컴퓨터 하드웨어 사이에 위치해서, 하드웨어를 운영 및 관리하고 명령어를 제어하여 응용프로그램 및 하드웨어를 소프트웨어적으로 제어 및 관리를 해야한다.
- TCP/IP
- 기타 프로토콜
4. 사용자 관리
운영체제는 한 컴퓨터를 여러 사람이 사용하는 환경도 지원한다. 따라서 각 계정을 관리할 수 있는 기능이 필요하다. 사용자 별로 프라이버시와 보안을 위해 개인 파일에 대해선 다른 사용자가 접근할 수 없도록 해야 한다. 이 밖에도 파일이나 시스템 자원에 접근 권한을 지정할 수 있도록 지원하는 것이 사용자 관리 기능이다.
- 계정 관리
- 접근권한 관리
5. 디바이스 드라이버
운영체제는 시스템의 자원, 하드웨어를 관리한다. 시스템에는 여러 하드웨어가 붙어있는데, 이들을 운영체제에서 인식하고 관리하게 만들어 응용 프로그램이 하드웨어를 사용할 수 있게 만들어야 한다. 따라서, 운영체제 안에 하드웨어를 추상화 해주는 계층이 필요하다. 이 계층이 디바이스 드라이버이다. 하드웨어의 종류가 많은 만큼, 운영체제 내부의 디바이스 드라이버도 많이 존재한다. 수많은 디바이스 드라이버들을 관리하는 기능 또한 운영체제가 맡고 있다.
- 순차접근 장치
- 임의접근 장치
- 네트워크 장치
'Computer Science > Operating System' 카테고리의 다른 글
인터럽트(Interrupt) (0) | 2020.09.17 |
---|---|
프로세스 & 스레드 (Process & Thread) (0) | 2020.09.05 |