운영체제 (OS)
운영체제의 개요
운영체제란?
사용자와 컴퓨터 시스템 사이에 위치하여 컴퓨터 시스템의 전반적인 동작을 제어하고 조정하며,
사용자에게 편리성을 제공하여 한정된 시스템 자원을 효율적으로 사용할 수 있도록 관리하는
여러 시스템 프로그램들의 집합
운영체제의 목적
- 컴퓨터 시스템의 자원을 편리하게 사용할 수 있는 환경 제공
- 컴퓨터 시스템의 자원(CPU, 메모리, HDD, 입출력 장치)들을 효율적으로 관리하여 시스템의 성능 최적화
- SW(소프트웨어)과 HW(하드웨어)의 중간 역할
운영체제의 기능
- 사용자와 대화할 수 있는 사용자 인터페이스를 화면에 출력함
- 프로그램들을 사용자가 사용할 수 있도록 컴퓨터의 주기억장치에 적재함
- 프로그램들이 컴퓨터의 다른 하드웨어, 소프트웨어들과 원활히 작동할 수 있도록 조정함
- 정보가 디스크에 저장되고 검색될 수 있도록 관리함
- 컴퓨터의 기능을 사용자가 잘 활용하도록 돕고, 하드웨어가 본연의 성능을 잘 발휘하도록 자원을 관리
초기화 | 자원관리 | 기타 |
---|---|---|
* 컴퓨터 시스템 초기화 설정 가능 | * 중앙처리장치 * 저장장치 * 입출력장치 * 주기억장치 * 네트워크장치 * 파일시스템 |
* 사용자와 컴퓨터 간 편리한 인터페이스 기능 * 오류 검사 및 복구 기능 * 사용자 계정관리 * 자원 공유 및 보안 * 하드웨어 및 자원의 공유 |
운영체제 관리
운영체제의 관리 대상
(Operating System = OS)
├─── User Interface
├─── Memory Manager - 기억장치
├─── Process Manager - 프로세스
├─── Device Manager - 입출력장치
└─── File Manager - 파일
* Manager = 운영체제 관리자
* Manager에 종속된 요소는 운영체제 관리대상 (기억장치, 프로세스, 입출력장치, 파일)
기억장치 관리
-
여러 프로그램을 실행하는 동안의 주기억장치, 보조기억장치를 관리하는 프로그램
-
기능
-
주기억장치의 공간이 사용 가능하면 어느 프로세스를 주기억장치에
적재할지 결정하여 적절한 주기억장치에 프로세스 적재 -
프로세스가 더 이상 주기억장치를 필요로 하지 않으면 다시 주기억장치를 회수
-
-
주기억장치(RAM)를 관리하는 방식의 종류
단일 프로그램 방식
- 하나의 실행되는 프로그램을 주기억장치에 적재하여 실행하고 다른 프로그램을 실행하면
이전의 프로그램을 내리고 다시 실행할 프로그램을 적재하는 방식
다중 프로그램 방식
- 하나 이상의 프로그램이 동시에 주기억장치 내부에 적재하고 동시에 프로그램을 실행할 수 있도록 하는 방식
- 복잡도는 늘어나나 wait time을 최소화하여 사용하기에 효율성은 높다. (컴퓨터의 성능이 높다고 판단해도 된다.)
- 하나의 실행되는 프로그램을 주기억장치에 적재하여 실행하고 다른 프로그램을 실행하면
프로세스 관리 : '프로세스 상태에 따라 관리를 어떻게 하는가..?' <- 포인트
-
기능
- 프로세스의 생성과 삭제, 프로세스의 중지와 계속, 프로세스의 동기화 등의 기능을 수행
-
프로세스의 정의
-
실행중인 프로그램
- 시작했지만 아직 종료되지 않은 프로그램으로 주기억장치에 적재되어 있는 프로그램
-
CPU에 선택되어 처리가 수행되는 프로그램
-
프로세스의 상태
-
프로세스의 상태 변경은 프로세스 스케쥴러에 의해 관리
-
프로세스 스케쥴러에 의해 waiting, ready, running 상태로 변화됨
-
Ready는 준비 상태를 의미하며, 프로세스가 주기억장치 등 필요한 자원들을
할당받은 상태에서 프로세서(CPU)를 할당받기 위해 기다리고 있는 상태 -
Running은 실행 상태를 의미하며, 프로세스가 프로세서를 차지하고 있는 상태
-
Waiting은 대기 상태를 의미하며, 프로세스가 필요한 자원을 요청한 후 이를 할당받을 때까지 기다리는 상태
-
시스템 이상이나 과부하 등으로 인해 프로세스가 기억장치를 빼앗기는 경우 (보류된 준비상태, 보류된 대기상태)
장치 관리
-
기능
-
입출력 장치의 효과적인 할당과 회수
-
프로세스의 입출력
-
실행 중인 프로세스의 입출력을 인터럽트(Interrupt)를 이용하여 처리
- 실행 중인 프로세스가 입출력을 요구하면 실행을 잠시 멈춤
- 요구한 입출력에 해당하는 장치를 할당함
- 입출력이 종료되면 다시 입출력 장치 등의 자원을 회수하여 중단된 시점부터 프로세스의 실행을 다시 실행함
- 인터럽트란 컴퓨터 장치나 프로그램에서 특정한 일이 발생했을 때 운영체제에서 특정한 서비스를 수행하도록 요구하는 이벤트
-
-
-
장치 제어기 (Device Driver) = 드라이버
- 장치관리자와 하드웨어인 입출력장치 사이의 인터페이스를 담당하는 프로그램
- 컴퓨터가 장치와 소통할때 드라이버 S/W를 설치하는데 바로 이 것이다.
- 하드웨어와 운영체제의 연결 고리가 되는 프로그램으로 하드웨어 구성요소가 운영체제 하부에서 적절히 작동하는데 필요한 프로그램
- 디스크제어기(디스크), 프린터제어기(프린터), 다른 제어기..
CPU (ALU, CU, 레지스터 (MAR, MBR, IR, PC))
PC 프로그램 카운터가 인터럽트를 가능케 한다.
파일 관리
-
보조기억장치에서 저장되는 파일을 관리
-
역할
- 사용자와 보조기억장치 사이의 인터페이스 제공
- 실제 기억장치에 대한 사용자의 논리적인 관점과 실제 기억장치의 물리적인 관점을 연결하는 역할 수행
-
기능
- 파일의 접근을 제어
- 파일의 생성, 삭제, 수정을 감독
- 파일을 디스크의 어디에 저장할지를 감독
- 파일을 여러 사용자가 공유하는 기법을 제공
- 폴더의 구조를 제공하고 관리
-
보조기억장치 (물리적 관점 제공) <=> 파일 관리자 (인터페이스 제공) <=> 사용자 (논리적 관점 제공)
운영체제의 분류
초기 운영체제 및 여러 운영체제 형태
-
운영체제가 없던 초기
- 프로그래머가 컴퓨터 하드웨어를 직접 조작하였으므로 작업을 하나 수행하려면 준비 시간이 많이 소요됨
- 비효율적인 중앙처리장치의 이용으로
작업 시간의 낭비를 초래
함
-
운영체제의 개념 등장
- 1952년 IBM-701 컴퓨터의 사용을 위해 GM(General Motors) 연구소에서 개발한 프로그램
-
일괄처리 방식
-
일정 기간 또는 일정량의 자료 처리를 모아 두었다가 한 시점에 순서적으로 일괄처리하는 자료 처리 방식
-
급여 명세서를 작업한다면 월(month)에 한번(once) 근로시간 데이터를 입력받은 파일을 기준으로 처리를 한다.
-
장점
- 한 번 시스템을 처리한 자료는 시스템 자원을 독점하여 처리하므로 컴퓨터 시스템을 효율적으로 사용
-
단점
- CPU가 사용 가능하더라도 다른 처리를 할 수 없는 유휴 시간(Idle time)을 가짐
- 작업 제출과 작업 완료 사이의 시간 (Turn around time)이 많이 걸려 작업 결과를 빠르게 확인할 수 없음
-
-
시분할 시스템
-
하나의 시스템을 여러 명의 사용자가 단말기를 이용하여 여러 작업을 처리할 때 이용하는 방법
-
작업 큐를 통해서 CPU의 이용 시간을 작게 분할하여 여러 사용자의 작업을 순환하며 수행
-
실행 프로그램은 연산처리장치의 할당 시간을 돌아가며 부여 받는 타임 조각(Time slice) 방법으로 시분할 구현
-
장점
- 단말기에서 컴퓨터와 대화형식으로 프로그램을 작성하거나 실행할 수 있음
- 대화형식으로 진행할 수 있는 기능이 있어서 컴퓨터가 한 시각에 하나 이상의 문제들을 해결하게 함으로써
중앙처리장치의 유휴 시간을 줄일 수 있음
-
단점
- 시스템의 사용량과 사용하는 단말기의 수가 적정해야 하고, 그렇지 않으면 시스템의 반응속도가 현저하게 떨어짐
- 기억장치 관리 기법, CPU 스케줄링 기법등이 필요하므로 운영체제가 복잡함
-
-
다중프로그래밍 시스템
-
2개 이상의 여러 프로그램을 주기억장치에 동시에 저장하고 하나의 CPU로 실행하는 방식
-
하나의 프로그램이 주변장치의 처리를 기다리는 동안 다른 프로그램이 CPU에서 실행될 수 있게 함으로써
전체적인 시스템의 처리 효율을 높이는 방식 -
여러 개의 프로그램을 준비 상태에 두고 관리하며 다른 한 작업을 실행할 프로그램을로 선정하기 위한
기억관리 기법
과CPU 스케줄링 기법
이 필요 -
한 프로그램이 입출력 대기상태가 되면 다른 프로그램이 CPU를 사용할 수 있도록 전환하고,
입출력 동작이 끝나면우선순위 (실행할 프로그램을 선정하기 위한 기준)
에 따라 실행 가능한 프로그램 중에서 하나를 선정하여 실행
작업요청시간, 입출력 동작시간, CPU 사용시간 => 우선순위결정
-
-
다중처리 시스템
- 2개 이상의 중앙처리장치(CPU, Processor)를 사용하여 작업을 여러개로 분담하여 프로그램을 동시에 수행하는 방식
- 수행시간을 단축하거나 단위 시간당 처리율을 높일 수 있는 방식
-
하나의 CPU에 문제가 생기더라도 다른 CPU가 처리를 계속할 수 있으므로, 신뢰도를 높일 수 있는 방식
-
다중작업 (Multi Tasking)
- 한 사람의 사용자가 한 대의 컴퓨터로 2가지 이상의 작업(task)을 동시에 처리하거나 프로그램들을 동시에 구동시키는 기능
- 처리속도가 빨라지고 메모리 용량이 증가하면서 다중작업이 가능하게 됨
-
단일작업
- 한 사용자가 한 번에 한 가지 작업이나 한 프로그램밖에 실행하지 못하는 시스템
- MS-DOS 운영체제에서는 문서작성을 하다가 프레젠테이션 프로그램을 실행하려면 문서작성 프로그램을 종료하고
프레젠테이션 프로그램을 실행해야 했음
-
실시간 처리 시스템
- 처리를 요구하는 작업이 발생할 때마다 지정된 짧은 시간 내에 작업을 처리하여 확실한 응답이나 출력을 보장하는 시스템
- 온라인을 통해 통신하여 주기억장치, CPU, 디스크에서 작업 처리
-
좌석 예약 시스템, 은행의 예금 업무등..
-
장점
- 자료가 발생한 단말기를 통해 그 처리가 가능함
- 사용자가 편리
- 처리 시간의 단축
- 처리 비용의 절감
- 자료가 발생한 단말기를 통해 그 처리가 가능함
-
단점
- 시스템에 오류가 발생하면 심각한 문제가 발생할 수 있는 위험성이 있는 시스템
-
분산 처리 시스템
-
네트워크를 통해 연결된 여러 자료 저장 장소와 컴퓨터 시스템에 작업과 자원을 나누어
서로 통신을 하면서 일을 처리하게 하는 방식 -
하나의 대형 컴퓨터 시스템에서 수행하던 기능을 물리적으로 분산된 여러 개의 시스템에 분담시킨 후
네트워크를 통하여 상호 교신하여 일을 처리하는 방식 -
장점
- 여러 개의 자료 저장 장소와 시스템을 이용하여 동시에 여러 작업을 수행함으로써 성능이 향상 될 수 있음
- 자료도 복사본을 여러 곳에 유지할 수 있어 신뢰도를 높일 수 있음
- 네트워크에 새로운 처리 시스템을 추가함으로써 쉽게 시스템 확장도 가능함
-
단점
- 보안 취약
- 네트워크 장애 발생시 치명적
-
운영체제의 발전 과정
세대 | 년도 | 특징 | 의미 |
---|---|---|---|
0세대 | 1940년대 | 운영체제가 없었음 | 기계어 사용 |
1세대 | 1950년대 | 일괄처리 시스템 | IBM 701용 OS, 단일 흐름 일괄 처리 |
2세대 | 1960년대 | 다중 프로그래밍, 시분할 시스템 등장, 실시간 처리 시스템 |
고급 언어로 운영체제 개발 |
3세대 | 1960년대 중반 ~ 70년 중반 | IBM S/360, S/370등장, 다중모드 시스템 도입 |
일괄처리, 시분할 처리, 다중 처리를 하나의 시스템에서 제공(다중모드), 유닉스 개발 |
4세대 | 1970년대 중반 ~ 1989년 | GUI 방식 발전, 분산 처리 시스템 개념, 개인용 컴퓨터 OS 등장 |
개인용 컴퓨터와 워크스테이션 등장, TCP/IP의 등장 |
5세대 | 1990년대 ~ | 분산 처리 시스템 실현, 지식 기반 시스템 등장, 인공 지능 시스템 실현 |
MS 윈도우즈의 강세, 다양한 GUI 방식의 운영체제 |
운영체제의 종류
-
도스 (DOS : Disk Operation System)
- 디스크 중심의 명령행 사용자 인터페이스 (Command Line User Interface)방식의 운영체제
- 1981년 8월 버전 1.0으로 시작
특징 | 비고 |
---|---|
단일 작업 | 여러 개의 응용 프로그램이 보호를 받으면서 동시에 기억장치에서 실행되는 것을 지원하지 않음(단일작업) |
제한된 메모리의 이용 | RAM에서 640KB만 인식할 수 있도록 설계 |
8비트, 16비트 운영체제 | 8비트, 16비트의 CPU용으로 설계 |
하드웨어 설치 복잡 | 주변장치마다 고유한 드라이버가 필요 |
8.3 파일명 | 파일이름 8자의 이름과 3자의 확장자로 구성 |
명령행 인터페이스 | 그래픽 사용자 인터페이스가 아닌 문자를 입력하는 형식의 명령행 사용자 인터페이스 |
-
Windows (MicroSoft에서 개발한 OS)
-
윈도우 (GUI 방식)
- 도스 운영체제의 명령행 인터페이스 방식에서 발전하여 그래픽 사용자 인터페이스(GUI) 방식을 채택한 운영체제
- 1983년 윈도우 3.0 처음 출시
- 1993년 윈도우 3.1에서 GUI 사용
- 윈도우 3.1도 운영체제라기보다는 운영환경에 불과한 것이었고, 도스가 실질적인 운영체제
- 윈도우 95/98부터 실질적인 GUI
- Window NT/2000/2003는 클라이언트/서버 환경에서 서버로 동작하는 시스템에 사용될 목적으로 개발
- Window Vista, 7, 8 -> 운영체제의 향상을 위해 등장
-
-
매킨토시
- 1976년 애플1
-
1981년 제록스 스타 워크스테이션
- 제록스 사는 그래픽 운영체제의 모체가 된 그래픽 운영환경을
채택한 제록스 스타 워크스테이션을 발표
- 제록스 사는 그래픽 운영체제의 모체가 된 그래픽 운영환경을
-
1983년 애플 컴퓨터의 리사 (Lisa)
- 처음으로 그래픽 사용자 인터페이스 방식의 운영체제를 장착한 리사를 발표
- 일반 비즈니스 시장을 목표로 한 최초의 개인용 컴퓨터이며
최초로 그래픽 사용자 인터페이스의 운영체제를 탑재한 개인용 컴퓨터
-
유닉스
-
1960년대 시분할 운영체제 멀틱스(Multics)
- 여러 사용자 동시 지원
- 복잡한 OS
- 고가
- 대형 컴퓨터에서만 작동
- 미니컴퓨터에서 작동이 가능하도록 기능을 대폭 축소, 단순화 시킨 OS 개발 필요
- 1969년 AT&T 벨 연구소의 데니스 리치와 켄 톰슨이 초기 버전 OS 개발
-
1973년 이것을 발전시켜 새로 개발한 언어 C를 이용하여 시스템 PDP-11을 위해 만든 운영체제가 유닉스 (Unix)
-
특징
- C언어로 만들어져서 이식성이 좋다.
-
유닉스의 장점과 단점
항목 | 장점 | 단점 |
---|---|---|
이식성, 호환성, 공개성 | 개발에 용이함 | 다양한 버전이 있음 |
파일 시스템 | 트리 구조로 사용이 편함 | 처리 속도 지연 |
시분할 방식 | 모든 사용자에게 컴퓨터 자원 균등 분배 | 업무의 우선 순위 결정이 어려움 |
명령어 축약 | 최소로 최대의 효과 | 초보자는 사용이 어려움 |
통신 | 다양한 유틸리티 제공 (UUCP, e-메일 등) | - |
분산처리 | 서로 다른 기종 간에도 가능 | - |
프로그램 개발 도구 | 다양한 도구 제공 | - |
한글 지원 | 자국어 처리 시스템 이용 | - |
에러 메시지 | - | 간단하고 불분명함 |
-
리눅스
-
특징
- 인터넷 프로토콜인 TCP/IP를 강력하게 지원하는 등 네트워크 기능의 강화
- 다중 사용자 (Multi User), 다중 프로그래밍(Multi Programming) 방식을 지원하는 안전성 있는 운영체제
- UNIX와 유사한 형태를 가지기 때문에 익히기가 쉬움
- 서버용 소프트웨어를 포함한 여러 소프트웨어를 기본으로 제공함
- 사용자가 사용하기 쉽도록 한 배포판을 무료로 다운 받을 수 있음
-