운영체제 개요
by Frinee운영체제(OS, Operating System)
컴퓨터 시스템의 하드웨어와 소프트웨어를 관리하고 사용자와 컴퓨터 간의 상호작용을 가능하게 하는 소프트웨어
1. 운영체제의 기능
- 컴퓨터 시스템 내의 자원관리
- CPU 스케줄링과 프로세스 관리: CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리한다.
- 메모리 관리: 한정된 메모리를 어떤 프로세스에 얼마큼 할당해야 하는지를 관리한다.
- 디스크 파일 관리: 디스크 파일을 어떠한 방법으로 보관할지 관리한다.
- I/O 디바이스 관리: I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리한다.
- 컴퓨터 시스템 인터페이스 제공
- 악성 프로그램에 대한 보안
2. 운영체제의 분류
2.1. 동시작업 지원
- 단일작업용 운영체제
- 초창기 시절에 등장한 한 번에 하나의 프로그램만 실행시키는 운영체제
- ex) 도스(DOS)
- 다중작업용 운영체제
- 동시에 여러 개의 프로그램을 처리하고 여러 프로그램이 CPU와 메모리를 공유하게 됨, ex) MS 윈도우, UNIX 등
- 각 프로그램에 대한 키보드의 입력 결과를 바로 화면에 보여주는 대화형 시스템의 특징을 가짐
2.2. 다중 사용자 동시 지원
- 단일 사용자용 운영체제
- 한 번에 한 명의 사용자만이 사용하도록 허용하는 운영체제, ex) DOS, MS 윈도우
- 다중 사용자용 운영체제
- 여러 사용자가 동시에 접속해 사용할 수 있게 하는 운영체제, ex) 서버 (email, web)
2.3. 작업처리 방식 기준
- 일괄처리 방식
- 요청된 작업을 일정량씩 모아서 한꺼번에 처리하는 방식
- 모든 작업이 종료된 후 결과를 얻을 수 있어 응답시간이 긴 단점이 있음
- 시분할 방식
- 여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식
- 일괄처리 방식에 비해 짧은 응답시간을 갖게 됨
- 사용자의 요청에 대한 결과를 곧바로 얻을 수 있어 대화형 시스템으로 표현되기도 함
- 실시간 운영체제
- 정해진 시간 안에 일이 반드시 처리됨을 보장하는 시스템, ex) 원자로, 공장 제어시스템, 미사일 제어시스템 등
- 시간제약에 중요성에 따라 경성 실시간 시스템과 연성 실시간 시스템으로 나뉨
- 경성 실시간 시스템: 매우 위험한 결과를 초래할 수 있는 로켓, 원자로 제어 시스템 등이 있음
- 연성 실시간 시스템: 멀티미디어 스트리밍 시스템과 같은 데이터가 정해진 시간 단위로 전달외어야 올바른 기능을 수행할 수 있는 시스템
3. 운영체제의 예
3.1. MS 윈도우
- Microsoft 사에서 이전의 MS-DOS와 윈도우 3.1 등을 발전시킨 개인용 컴퓨터를 위한 운영체제
- 윈도우95 출시로 하나의 온전한 운영체제에서 프로그램이 실행됨.
- 윈도우 XP부터는 그래픽 환경과 아이콘 방식을 채택하여 초보자에게도 쉽게 배울 수 있는 방법 제공
특징
- 플러그 앤 플레이(plug and play): 시스템에 새로운 하드웨어 장착 시 운영체제가 자동으로 감지하여 그에 맞게 설정
- 안정성은 유닉스와 비교했을 때 떨어졌음
- 사용이 편리한 여러가지 기능들을 제공
3.2. 유닉스 (UNIX)
- 1969년 벨 연구소에서 최초로 개발, 프로그램 개발을 위해 설계된 운영체제
- 이식성이 좋고, 커널의 크기가 작으며 소스코드가 공개되었다는 점에서 학계에서 연구용으로 많이 쓰였고 확대되어 널리 사용되는 운영체제로 자리잡음
- 모듈 단위로 작성된 운영체제였기 때문에 하드웨어•소프트웨어의 발전에도 확장성을 지원하여 사용할 수 있음.
- 이식성: 해당 소프트웨어를 다른 기종의 기계로 옮기는 것이 용이한 정도
- 대부분의 코드가 C언어로 작성
- 최근 리눅스(Linux)의 등장으로 개인용 컴퓨터에서도 유닉스를 널리 사용함.
4. 운영체제의 자원관리 기능
4.1. CPU 스케줄링
- 매 시점 어떠한 프로세스에 CPU를 할당해 작업을 처리할 지에 대해 결정하는 작업
- ex) 선입선출(FCFS, First Come, First Serve), 라운드 로빈(Round Robin), 우선순위(Priority) 등
- 선입선출(FCFS) 기법
- 도착한 프로세스 중 먼저 온 것을 먼저 처리하는 방식
- CPU 자체의 효율은 좋지만 전체 시스템에서는 비효율적일 수 있음.
- 라운드 로빈(Round Robin) 기법
- CPU를 한 번 할당받아 사용할 수 있는 시간을 일정하게 고정하는 방식
- 일반적으로 1회 할당시간을 밀리초(ms) 단위로 사용
- 우선순위 스케줄링 기법
- 프로세스들에 우선순위를 부여하여 우선순위대로 먼저 CPU에 할당하는 방식
- 지나치게 오래 기다리는 프로세스가 발생하지 않도록 우선순위를 점차 높이는 방안도 사용
4.2. 메모리 관리 방식
- 프로그램에 메모리가 필요할 때 할당하고, 필요하지 않을 때 회수하는데 이를 잘 판단해 메모리 공간을 효율적으로 사용할 수 있는 방식이 필요
- ex) 고정분할 방식, 가변분할 방식, 가상메모리 방식 등
- 고정분할 방식
- 물리적 메모리를 몇 개의 분할로 미리 나누어 관리
- 분할 크기보다 큰 프로그램은 적재가 불가능하고 작은 프로그램의 경우 내부조각이 발생하여 효율적이지 않음.
- 내부조각(internal fragmentation): 분할 크기보다 작은 프로그램이 적재된 경우 남는 영역
- 가변분할 방식
- 매 시점 프로그램의 크기에 맞게 메모리를 분할해서 사용하는 방식
- 물리적 메모리의 크기보다 큰 프로그램은 사용할 수 없음
- 분할의 크기와 개수가 동적으로 변하여 기술적 관리 기법이 필요
- 외부조각(external fragmentation): 프로그램에 할당되지 않았지만 크기가 작아 프로그램에 올리지 못하는 메모리 영역
- 가상메모리 기법
- 물리메모리와는 다른 별도의 가상메모리주소가 부여됨
- 물리적 메모리보다 더 큰 프로그램이 실행되는 것을 지원
- 가상메모리 저장 방식
- 운영체제는 가상메모리의 주소를 물리적 메모리 주소로 매핑하여 주소를 변환한 후 프로그램을 물리적 메모리에 올림
- 현재 사용되고 있는 부분만 메모리에 올리고 나머지는 하드디스크와 같은 보조기억장치에 저장했다가 필요할 때 적재
- 보조기억장치의 영역을 스왑 영역(swap area)이라 함.
- 가상메모리 주소 공간은 페이지(page)라는 동일한 크기의 작은 단위로 나뉘어 물리적 메모리와 스왑 영역에 일부분 저장하는 데 이를 페이징(paging) 기법이라 함.
4.3. 주변장치 및 입출력장치 관리
- 인터럽트(interrupt): 주변장치들을 CPU가 서비스가 필요한 경우 서비스를 요청하기 위해 발생시키는 신호
- ex) 키보드 입력, 마우스 클릭
- CPU는 인터럽트가 발생했을 시 작업
- 하던 작업을 중지
- 수행 중이던 작업 상태 저장
- 인터럽트를 처리
- 다시 원래의 작업을 계속 수행
자료
- 운영체제와 정보기술의 원리 (반효경, 2020.05)
'[컴퓨터 과학자 스터디] > 운영체제' 카테고리의 다른 글
CPU 스케줄링 (0) | 2024.10.27 |
---|---|
프로세스 관리 (0) | 2024.10.22 |
프로그램의 구조와 실행 (0) | 2024.10.21 |
컴퓨터 시스템의 동작 원리 (0) | 2024.10.15 |
컴퓨터 및 정보기술의 역사 (1) | 2024.10.11 |
블로그의 정보
프리니의 코드저장소
Frinee