본문 바로가기
Computer Science/Operating System

운영체제(Operating System)란?

by weero 2020. 9. 3.

- 응용 프로그램과 하드웨어 사이에서 인터페이스 역할을 하며 컴퓨터 하드웨어를 관리한다.

- 운영체제는 시스템의 자원과 동작을 관리하는 시스템 소프트웨어의 일종이다.

- 좁은 의미 : 컴퓨터 전원을 켠 뒤 부팅이 일어난 이후로 항상 메모리에 상주하는 부분 = 커널 = 운영체제

- 넓은 의미 : 커널을 포함해 주변 시스템을 다루는 유틸리티

 

운영체제의 종류

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