운영체제 정의
운영체제란
- 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어
- 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
커널(kernel)
- 메모리에 상주하는 운영체제의 핵심 부분
소프트웨어가 컴퓨터 시스템에서 실행되려면 메모리에 그 프로그램이 올라가야 한다.
운영체제는 컴퓨터 전원이 켜지는 것과 동시에 실행이 된다.
운영체제는 규모가 큰 프로그램이므로 메모리 공간의 낭비를 막기 위해 필요한 부분(커널)만 전원이 켜짐과 동시에 메모리에 올려놓고, 그렇지 않은 부분은 필요할 때 메모리로 올려서 사용한다.
운영체제의 기능
1. 컴퓨터 시스템 내의 자원을 효율적을 관리한다.
자원 : 소프트웨어자원 + 하드웨어 자원
2. 사용자에게 컴퓨터 시스템을 편리하게 사용할 수 있는 환경(인터페이스) 제공
예를들어, 사용자는 파일이 디스크에 어떻게 저장되는지 알지 못하지만, 운영체제가 제공하는 편리한 인터페이스를 통해 파일을 손쉽게 저장하고 꺼내볼 수 있다.
3. 보안 및 보호 기능
운영체제 분류
동시작업 지원 여부
1. 단일작업용 운영체제
- 한번에 하나의 프로그램만 실행
2. 다중작업용 운영체제
- 동시에 2개 이상의 프로그램을 처리
- 시분할 시스템 : CPU의 작업시간을 여러 프로그램들이 조금씩 나누어 쓰는 시스템
- 다중 프로그래밍 시스템 : 메모리 공간을 분할 해 여러 프로그램들을 동시에 메모리에 올려놓고 처리하는 시스템
- 대화형 시스템 : 사용자의 요청에 대한 결과를 곧바로 얻을 수 있는 시스템
* 다중처리기 시스템 : 하나의 컴퓨터 안에 CPU가 여러개 설치된 경우. 서로다른 CPU로 여러 프로그램이 동시에 실행되 처리 속도가 더 빨라지지만, 운영체제가 더 복잡한 메커니즘을 필요로 한다.
다중 사용자에 대한 동시 지원 여부
1.단일 사용자용 운영체제
- 한번에 한명의 사용자만이 사용하도록 허용
2. 다중 사용자용 운영체제
- 여러 사용자가 동시에 접속해 사용할 수 있음.
- 예를들어 이메일서버, 웹서버등 서버라 부르는 컴퓨터
작업을 처리하는 방식
1. 일괄처리 방식
- 요청된 작업을 일정량씩 모아서 한꺼번에 처리하는 방식.
- 모든 작업이 완전히 종료된 후에 결과를 얻을 수 있다.
- 단점 : 응답 시간이 길다
2. 시분할 방식
- 여러 작업을 수행할 때 컴퓨터의 처리능력을 일정한 시간 단위로 분할해 사용하는 방식
- 대화형 시스템 : 사용자의 요청에 대한 결과를 곧바로 얻을 수 있는 시스템으로 시분할 방식의 대표적 특성이다.
3. 실시간 운영체제
- 정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장해야 하는 시스템에서 사용.
- 경성 실시간 시스템
: 주어진 시간을 지키지 못할경우 매우 위험한 결과를 초래할 가능성이 있는 로켓, 원자로 제어 시스템등을 말한다.
- 연성 실시간 시스템
: 멀티미디어 스트리밍 같이 데이터가 정해진 시간 단위로 전달되어야 올바른 기능을 수행할 수 있는 시스템.
운영체제의 자원 관리 기능
자원 : 하드웨어 자원과 소프트웨어 자원을 의미한다.
하드웨어 자원
- CPU : 여러 프로세스들이 CPU를 효율적으로 나누어 사용할 수 있도록 관리
- 메모리 : 서로 다른 다수의 프로세스들이 한정된 용량의 메모리를 나누어 쓸 수있도록 관리
- 입출력 장치 : 보조기억장치 관리
CPU 스케줄링
- 매 시점 어떠한 프로세스에 CPU를 할댕해 작업을 처리할 것인지 결정한다.
- CPU 스케줄링 기법으로는 선입선출, 라운드 로빈, 우선순위 기법이 있다.
선입선출 기법
- CPU를 사용하기 위해 도착한 프로세스들 중 먼저 온것을 먼저 처리해주는 방식
- CPU를 먼저 얻은 프로세스가 원하는 작업을 완료할 때까지 다른 프로세스들이 CPU를 사용하지 못한다.
- 전체 시스템 입장에서는 비효율적인 결과를 초래할 가능성이 있다.
라운드 로빈 기법
- 선입선출 기법의 단점을 보완.
- CPU를 한번 할당받아 사용할 수 있는 시간을 일정하게 고정된 시간으로 제한으로 제한한다.
- 긴 작업을 요하는 프로세스는 정해진 시간이 지나면 CPU 대기열의 제일 뒤에가서 줄을 서야한다.
우선순위 기법
- CPU 사용을 위해 대기 중인 프로세스들에 우선순위를 부여하고, 우선순위가 높은 프로세스에 CPU를 먼저 할당한다.
메모리
- 메모리는 CPU가 직접 접근할 수 있는 컴퓨터 내부의 기억장치이다. 프로그램이 CPU에서 실행되려면 해당 부분이 메모리에 올라가 있어야 한다.
- 운영체제는 프로그램에 메모리가 필요할 때 할당하고, 더 이상 필요하지 않을 때 회수하여 전체 메모리 공간이 효율적으로 사용될 수 있도록 관리한다. 또한 각 프로세스가 자신의 메모리 영역에만 접근 할 수 있도록 관리한다.
- 물리적 메모리를 관리하는 방식 : 고정분할 방식, 가변분할 방식, 가상메모리 방식
고정분할 방식
- 물리적 메모리를 몇 개의 분할로 미리 나누어 관리하는 방식. 나뉜 각각의 분할에는 하나의 프로그램이 적재 될 수 있다.
- 단점 :
메모리에 동시 적재되는 최대 프로그램의 수가 분할 개수로 한정됨.
분할의 크기보다 큰 프로그램은 적재가 불가능하다.
분할이 고정적이므로 분할의 크기보다 작은 프로그램이 적재되는 경우 해당 분할 내에 남는 영역이 발생 > 내부조각
- 내부조각
: 해당 분할에 올라온 프로그램에 의해서도 사용되지 않고, 다른 프로그램에도 할당될 수 없는 비효율적으로 낭비되는 공간
가변 분할 방식
- 매 시점 프로그램의 크기에 맞게 메모리를 분할해서 사용하는 방식
- 분할의 크기 때문에 큰 프로그램의 실행이 제한되는 문제는 발생하지 않지만, 물리적 메모리의 크기보다 큰 프로그램의 실행은 여전히 불가능하다.
- 외부조각 : 현재 비어있는 공간이지만, 그 크기가 작아 아직까지 프로그램에 할당되지 못한 공간을 의미한다.
가상메모리 방식
- 현대의 범용 컴퓨터 환경에서 가장 널리 사용되는 메모리 관리 기법
- 물리적 메모리보다 더 큰 프로그램이 실행되는것을 지원한다.
- 모든 프로그램은 자신만의 가상 메모리 주소를 갖는다. 운영체제는 가상메모리 주소를 물리적 메모리 주소로 맵핑하는 기술을 이용해서 프로그램을 물리적 메모리에 올린다.
- 프로그램 크기가 커도 전체가 항상 동시에 사용되는것이 아니다. 현재 사용되고 있는 부분만 메모리에 올리고, 나머지는 보조기억장치(스왑 영역)에 저장해두었다가 필요할 때 적재하는 방식을 취한다.
- 가상메모리 주소 공간은 페이지(page)라는 동일한 크기의 작은 단위로 나뉘어 물리적 메모리와 스왑 영역에 일부분씩 저장된다.
- 페이징기법 : 동일한 단위로 메모리를 나누는 기법
주변장치 및 입출력장치
-인터럽트라는 메커니즘을 통해 관리가 이루어진다.
인터럽트( interrupt)
- CPU의 서비스가 필요할 때 발생시키는 신호.
- CPU는 CPU 스케줄링에 따라 주어진 작업을 수행하다가 인터럽트가 발생하면 하던일을 멈추고 인터럽트에 의한 요청 서비스를 수행한다. 처리 후에는 원래 하던일 계속 수행 (운영체제가 인터럽트 처리 직전 수행중이더 작업의 상태 저장)
- 인터럽트는 요청하는 장치와 발생 상황에 따라 다양한 종류가 있다. 운영체제는 인터럽트의 종류마다 서로 다른 인터럽트의 처리 루틴을 가지고 있다.
- 인터럽트 처리루틴 : 운영체제의 커널 내에 존재하는 코드로, 인터럽트 발생했을 때 해주어야 할 작업을 정의한 프로그램 코드
주변장치
- 컨트롤러 : 각 장치마다 일어나는 업무를 관리하기 위한 일종의 작은 CPU. 컨트롤러는 해당 장치에 대한 업무를 처리하고, 인터럽트를 발생시켜 메인 CPU에 보고하는 역할을 한다.
- 주변장치가 인터럽트를 통해서 CPU의 서비스를 받는 예시 :
키보드에 입력이 들어옴 > 키보드 컨트롤러가 인터럽트를 발생시킴. > CPU는 현재 수행중이던 작업의 상태를 저장하고 > 운영체제 내에 정의된 키보드 인터럽트 처리루틴을 실행 > 인터럽트 처리 완료 > 인터럽트가 발생하기 직전의 상태를 복구시켜 중단되었던 작업을 재개
출처
운영체제와 정보기술의 원리 - 이화여자대학교출판문화원 출판, 반효경 저
'운영체제' 카테고리의 다른 글
5. 프로세스 관리 (0) | 2022.09.14 |
---|---|
4. 컴퓨터 시스템의 동작 원리 (0) | 2022.09.12 |
3. 프로그램의 구조와 실행 (0) | 2022.09.12 |