반응형
2장, 운영체제 개요
운영체제(Operating System)
- 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어
- 사용자 및 다른 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
컴퓨터에 운영체제가 없다면, 컴퓨터는 고철덩어리에 불과하다. 고철 덩어리를 동작시키기 위해서 필요한 기본적인 소프트웨어가 바로 운영체제다. 사용자가 하드웨어를 다루는 것이 어려우므로, 사용자 입장에서 손쉽게 사용할 수 있도록 기본적으로 운영체제를 탑재한다.
커널(kernel)
- 운영체제 코드 중에서도 핵심적인 부분
- 좁은 의미의 운영체제
규모가 큰 운영체제를 모두 메모리에 올려놓고 사용할 수는 없다. 항상 필요한 부분을 메모리에 올려두고 그 외에는 필요한 순간에만 메모리에 올려서 사용한다. 이때 항상 메모리에 상주하는 부분을 커널(kernel)이라 한다.
유틸리티(Utility)
- 항상 메모리에 올라가 있는 것이 아닌, 별도의 프로그램
- 넓은 의미의 운영체제 : 커널 + 유틸리티(Utility)
사실상 운영체제의 일부라고 보긴 어렵지만, 시스템을 위한 유틸리티로 운영체제에 함께 설치되기 때문에 넓은 의미의 운영체제에 포함된다.
운영체제의 기능
- 하드웨어를 위한 역할 : 사용자가 직접 다루기 어려운 각종 하드웨어를 관리
컴퓨터 시스템 내의 자원을 효율적으로 관리하는 것
자원 관리자(resource manager)
여기서 자원(resource)이란? CPU, 메모리, 하드디스크 등의 하드웨어 자원 + 소프트웨어 자원
자원이 형평성 있게 분배되도록 균형자 역할도 수행해야 함 - 사용자를 위한 역할 : 편리한 인터페이스 제공
컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공하는 것 - 사용자와 운영체제 자신을 보호하는 역할
보안 및 보호 기능 수행
운영체제의 분류
- 단일 작업(Single Tasking)용 운영체제
예) 도스(Disk Operating System: DOS)
한 번에 하나의 작업만 실행 - 다중작업(Multi Tasking)용 운영체제
예) MS 윈도우, 유닉스 등
동시에 2개 이상의 프로그램 처리 가능
▶ 다중작업의 종류
- 시분할 시스템(time sharing system)
CPU의 작업시간을 여러 프로그램들이 조금씩 나누어 쓰는 시스템 - 다중 프로그래밍 시스템(multi-programming system)
메모리 공간을 분할해 여러 프로그램들을 동시에 메모리에 올려놓고 처리하는 시스템
대화형 시스템(interactive system)
사용자의 요청에 대한 결과를 곧바로 얻을 수 있는 시스템
다중 처리기 시스템(multi-processor system)
- 하나의 컴퓨터 안에 여러 개의 CPU
- 처리는 빨라지지만, 여러 개의 CPU를 관리해야 하므로 운영체제는 더욱 복잡한 메커니즘을 가진다.
분류 기준 : 다중 사용자에 대한 동시 지원
- 단일 사용자용 운영체제
한 번에 한 명의 사용자만 사용하도록 허용 - 다중 사용자용 운영체제
여러 사용자가 동시 접속하여 사용
서버 컴퓨터
분류 기준 : 작업을 처리하는 방식
- 일괄처리(batch processing) 방식
요청된 작업을 일정량씩 모아서 한꺼번에 처리하는 방식
응답 시간이 길다
예) 펀치 카드(Punch Card) 처리 시스템 - 시분할 방식
여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식
현대 범용 컴퓨터에 적용된 방식
짧은 응답 시간
대화형 시스템 - 실시간(real time) 운영체제
정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장해야 하는 시스템에 사용
예) 미사일 제어 시스템, 공장 제어 시스템 등
세부 분류- 경성 실시간 시스템(hanrd realtime system)
주어진 시간을 지키지 못할 경우 매우 위험한 시스템
예) 로켓, 원자로 제어 시스템 - 연성 실시간 시스템(soft realtime system)
데이터가 정해진 시간 단위로 전달되어야 올바른 기능을 수행할 수 있는 시스템
예) 멀티미디어 스트리밍 시스템
- 경성 실시간 시스템(hanrd realtime system)
운영체제의 자원 관리 기능 - 자원 종류별
- CPU 관리 방법
여러 프로세스들이 CPU를 효율적으로 나누어 사용할 수 있도록 관리
CPU 스케줄링(CPU Scheduling), CPU를 효율적으로 사용하면서 특정 프로세스가 불이익을 당하지 않는 것이 목표- 선입선출(First Come First Served: FCFS)
먼저 도착한 프로세스들 중 먼저 온 것을 먼저 처리
먼저 얻은 프로세스가 끝날 때까지 다른 프로세스는 기다려야 함 - 라운드 로빈(Round Robin)
한 번 할당받아 사용할 수 있는 시간을 일정하게 고정된 시간으로 제한
긴 작업을 가진 프로세스를 마냥 기다려야 하는 문제는 해결 - 우선순위(Priority)
대기 중인 프로세스에 우선순위를 부여하여 우선순위대로 처리하는 방식
대기 시간이 길 경우, 우선순위를 높이는 방식으로 장기간 대기를 막을 수 있음
- 선입선출(First Come First Served: FCFS)
- 메모리 관리 방법
다수의 프로세스들이 나누어 쓸 수 있도록 관리
메모리는 주소(address)를 통해 관리
전체 메모리 공간이 효율적으로 사용될 수 있도록 관리
각 프로세스가 다른 프로세스의 영역을 침범하지 않도록 관리
- 고정 분할(fixed partition)
물리적 메모리를 몇 개의 분할로 미리 나누어 관리
최대 적재 프로그램 개수가 한정됨
분할 크기보다 큰 프로그램은 적재가 불가능함
분할 크기보다 작은 프로그램을 적재할 시, 남은 영역이 발생 - 내부 조각(internal fragmentation) - 가변 분할(variable partition)
매 시점 프로그램의 크기에 맞게 메모리 분할
물리적 메모리보다 큰 프로그램의 실행은 불가능
메모리의 분할을 동적으로 변경하기 위해 기술적 관리 기법이 필요
프로그램에 할당되지 않았지만, 크기가 작아 활용되지 못하는 영역 - 외부 조각(external fragmentation) - 가상 메모리(virtual memory)
현대 범용 컴퓨터에서 가장 많이 사용되는 방식
물리적 메모리보다 더 큰 프로그램의 실행 지원
모든 프로그램은 물리적 메모리와는 독립적으로 0번지부터 시작하는 독립적인 가상 메모리 주소를 가짐
운영체제는 가상 메모리 주소를 물리적 메모리 주소로 매핑(mapping)하는 기술로 주소를 변환시킨다
물리적 메모리보다 큰 프로그램을 실행할 경우, 사용 중인 부분만 메모리에 올리고 다른 부분은 보조기억장치에 적재하는데, 이 영역을 스왑 영역(swap area)이라 부른다
페이지(page)라는 동일한 크기의 작은 단위로 나누어 메모리와 스왑 역역에 일부분씩 저장한다 : 페이징 기법
- 고정 분할(fixed partition)
- 입출력 장치 관리 방법
전원이 꺼질 때에도 기억해야 하는 정보를 파일 형태로 보조기억장치에 저장
인터럽트(interrupt) 메커니즘- 인터럽트 직전의 작업 상태를 저장해두었다가, 인터럽트를 처리한 후 이어서 작업을 처리하는 것
다양한 인터럽트 처리 루틴이 존재한다
주변 장치들은, 각 장치마다 그 장치에서 일어나는 업무를 관리하기 위한 일종의 작은 CPU를 가지고 있다
→ 컨트롤러(Controller)
- 인터럽트 직전의 작업 상태를 저장해두었다가, 인터럽트를 처리한 후 이어서 작업을 처리하는 것
- 파일 관리 방법
파일이 저장되는 방식, 접근 권한 관리
참고 자료
반효경, 『운영체제와 정보기술의 원리』, 이화여자대학교출판문화원(2020), p45-p65
반응형
'IT Basic > Operating System' 카테고리의 다른 글
[OS] 6장 CPU 스케줄링 (0) | 2021.12.28 |
---|---|
[OS] 5장 프로세스 관리 (0) | 2021.12.22 |
[OS] 4장 프로그램의 구조와 실행 (0) | 2021.12.22 |
캐시 메모리(Cache Memory) (0) | 2021.12.15 |
[OS] 3장 컴퓨터 시스템의 동작 원리 (0) | 2021.12.15 |
댓글