[컴퓨터개론] 5강. 운영체제 (OS)

운영체제 (OS)


운영체제의 개요

운영체제란?

사용자와 컴퓨터 시스템 사이에 위치하여 컴퓨터 시스템의 전반적인 동작을 제어하고 조정하며,
사용자에게 편리성을 제공하여 한정된 시스템 자원을 효율적으로 사용할 수 있도록 관리하는
여러 시스템 프로그램들의 집합


운영체제의 목적


운영체제의 기능


초기화 자원관리 기타
* 컴퓨터 시스템 초기화 설정 가능 * 중앙처리장치
* 저장장치
* 입출력장치
* 주기억장치
* 네트워크장치
* 파일시스템
* 사용자와 컴퓨터 간 편리한 인터페이스 기능
* 오류 검사 및 복구 기능
* 사용자 계정관리
* 자원 공유 및 보안
* 하드웨어 및 자원의 공유


운영체제 관리

운영체제의 관리 대상

(Operating System = OS)
                     ├─── User Interface
                     ├─── Memory Manager - 기억장치
                     ├─── Process Manager - 프로세스
                     ├─── Device Manager - 입출력장치
                     └─── File Manager - 파일

* Manager = 운영체제 관리자
* Manager에 종속된 요소는 운영체제 관리대상 (기억장치, 프로세스, 입출력장치, 파일)


기억장치 관리



프로세스 관리 : '프로세스 상태에 따라 관리를 어떻게 하는가..?' <- 포인트


프로세스의 상태


장치 관리


CPU (ALU, CU, 레지스터 (MAR, MBR, IR, PC))

PC 프로그램 카운터가 인터럽트를 가능케 한다.


파일 관리


운영체제의 분류

초기 운영체제 및 여러 운영체제 형태

  1. 운영체제가 없던 초기

    • 프로그래머가 컴퓨터 하드웨어를 직접 조작하였으므로 작업을 하나 수행하려면 준비 시간이 많이 소요됨
    • 비효율적인 중앙처리장치의 이용으로 작업 시간의 낭비를 초래
  2. 운영체제의 개념 등장

    • 1952년 IBM-701 컴퓨터의 사용을 위해 GM(General Motors) 연구소에서 개발한 프로그램
  3. 일괄처리 방식

    • 일정 기간 또는 일정량의 자료 처리를 모아 두었다가 한 시점에 순서적으로 일괄처리하는 자료 처리 방식

    • 급여 명세서를 작업한다면 월(month)에 한번(once) 근로시간 데이터를 입력받은 파일을 기준으로 처리를 한다.

    • 장점

      • 한 번 시스템을 처리한 자료는 시스템 자원을 독점하여 처리하므로 컴퓨터 시스템을 효율적으로 사용
    • 단점

      • CPU가 사용 가능하더라도 다른 처리를 할 수 없는 유휴 시간(Idle time)을 가짐
      • 작업 제출과 작업 완료 사이의 시간 (Turn around time)이 많이 걸려 작업 결과를 빠르게 확인할 수 없음
  4. 시분할 시스템

    • 하나의 시스템을 여러 명의 사용자가 단말기를 이용하여 여러 작업을 처리할 때 이용하는 방법

    • 작업 큐를 통해서 CPU의 이용 시간을 작게 분할하여 여러 사용자의 작업을 순환하며 수행

    • 실행 프로그램은 연산처리장치의 할당 시간을 돌아가며 부여 받는 타임 조각(Time slice) 방법으로 시분할 구현

    • 장점

      • 단말기에서 컴퓨터와 대화형식으로 프로그램을 작성하거나 실행할 수 있음
      • 대화형식으로 진행할 수 있는 기능이 있어서 컴퓨터가 한 시각에 하나 이상의 문제들을 해결하게 함으로써
        중앙처리장치의 유휴 시간을 줄일 수 있음
    • 단점

      • 시스템의 사용량과 사용하는 단말기의 수가 적정해야 하고, 그렇지 않으면 시스템의 반응속도가 현저하게 떨어짐
      • 기억장치 관리 기법, CPU 스케줄링 기법등이 필요하므로 운영체제가 복잡함
  5. 다중프로그래밍 시스템

    • 2개 이상의 여러 프로그램을 주기억장치에 동시에 저장하고 하나의 CPU로 실행하는 방식

    • 하나의 프로그램이 주변장치의 처리를 기다리는 동안 다른 프로그램이 CPU에서 실행될 수 있게 함으로써
      전체적인 시스템의 처리 효율을 높이는 방식

    • 여러 개의 프로그램을 준비 상태에 두고 관리하며 다른 한 작업을 실행할 프로그램을로 선정하기 위한
      기억관리 기법CPU 스케줄링 기법이 필요

    • 한 프로그램이 입출력 대기상태가 되면 다른 프로그램이 CPU를 사용할 수 있도록 전환하고,
      입출력 동작이 끝나면 우선순위 (실행할 프로그램을 선정하기 위한 기준)에 따라 실행 가능한 프로그램 중에서 하나를 선정하여 실행
      작업요청시간, 입출력 동작시간, CPU 사용시간 => 우선순위결정

  6. 다중처리 시스템

    • 2개 이상의 중앙처리장치(CPU, Processor)를 사용하여 작업을 여러개로 분담하여 프로그램을 동시에 수행하는 방식
    • 수행시간을 단축하거나 단위 시간당 처리율을 높일 수 있는 방식
    • 하나의 CPU에 문제가 생기더라도 다른 CPU가 처리를 계속할 수 있으므로, 신뢰도를 높일 수 있는 방식

    • 다중작업 (Multi Tasking)

      • 한 사람의 사용자가 한 대의 컴퓨터로 2가지 이상의 작업(task)을 동시에 처리하거나 프로그램들을 동시에 구동시키는 기능
      • 처리속도가 빨라지고 메모리 용량이 증가하면서 다중작업이 가능하게 됨
    • 단일작업

      • 한 사용자가 한 번에 한 가지 작업이나 한 프로그램밖에 실행하지 못하는 시스템
      • MS-DOS 운영체제에서는 문서작성을 하다가 프레젠테이션 프로그램을 실행하려면 문서작성 프로그램을 종료하고
        프레젠테이션 프로그램을 실행해야 했음
  7. 실시간 처리 시스템

    • 처리를 요구하는 작업이 발생할 때마다 지정된 짧은 시간 내에 작업을 처리하여 확실한 응답이나 출력을 보장하는 시스템
    • 온라인을 통해 통신하여 주기억장치, CPU, 디스크에서 작업 처리
    • 좌석 예약 시스템, 은행의 예금 업무등..

    • 장점

      • 자료가 발생한 단말기를 통해 그 처리가 가능함
        • 사용자가 편리
        • 처리 시간의 단축
        • 처리 비용의 절감
    • 단점

      • 시스템에 오류가 발생하면 심각한 문제가 발생할 수 있는 위험성이 있는 시스템
  8. 분산 처리 시스템

    • 네트워크를 통해 연결된 여러 자료 저장 장소와 컴퓨터 시스템에 작업과 자원을 나누어
      서로 통신을 하면서 일을 처리하게 하는 방식

    • 하나의 대형 컴퓨터 시스템에서 수행하던 기능을 물리적으로 분산된 여러 개의 시스템에 분담시킨 후
      네트워크를 통하여 상호 교신하여 일을 처리하는 방식

    • 장점

      • 여러 개의 자료 저장 장소와 시스템을 이용하여 동시에 여러 작업을 수행함으로써 성능이 향상 될 수 있음
      • 자료도 복사본을 여러 곳에 유지할 수 있어 신뢰도를 높일 수 있음
      • 네트워크에 새로운 처리 시스템을 추가함으로써 쉽게 시스템 확장도 가능함
    • 단점

      • 보안 취약
      • 네트워크 장애 발생시 치명적


운영체제의 발전 과정

세대 년도 특징 의미
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 방식의 운영체제


운영체제의 종류

  1. 도스 (DOS : Disk Operation System)

    • 디스크 중심의 명령행 사용자 인터페이스 (Command Line User Interface)방식의 운영체제
    • 1981년 8월 버전 1.0으로 시작
특징 비고
단일 작업 여러 개의 응용 프로그램이 보호를 받으면서
동시에 기억장치에서 실행되는 것을 지원하지 않음(단일작업)
제한된 메모리의 이용 RAM에서 640KB만 인식할 수 있도록 설계
8비트, 16비트 운영체제 8비트, 16비트의 CPU용으로 설계
하드웨어 설치 복잡 주변장치마다 고유한 드라이버가 필요
8.3 파일명 파일이름 8자의 이름과 3자의 확장자로 구성
명령행 인터페이스 그래픽 사용자 인터페이스가 아닌 문자를 입력하는
형식의 명령행 사용자 인터페이스


  1. 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 -> 운영체제의 향상을 위해 등장
  2. 매킨토시

    • 1976년 애플1
    • 1981년 제록스 스타 워크스테이션

      • 제록스 사는 그래픽 운영체제의 모체가 된 그래픽 운영환경을
        채택한 제록스 스타 워크스테이션을 발표
    • 1983년 애플 컴퓨터의 리사 (Lisa)

      • 처음으로 그래픽 사용자 인터페이스 방식의 운영체제를 장착한 리사를 발표
      • 일반 비즈니스 시장을 목표로 한 최초의 개인용 컴퓨터이며
        최초로 그래픽 사용자 인터페이스의 운영체제를 탑재한 개인용 컴퓨터
  3. 유닉스

    • 1960년대 시분할 운영체제 멀틱스(Multics)

      • 여러 사용자 동시 지원
      • 복잡한 OS
      • 고가
      • 대형 컴퓨터에서만 작동
    • 미니컴퓨터에서 작동이 가능하도록 기능을 대폭 축소, 단순화 시킨 OS 개발 필요
    • 1969년 AT&T 벨 연구소의 데니스 리치와 켄 톰슨이 초기 버전 OS 개발
    • 1973년 이것을 발전시켜 새로 개발한 언어 C를 이용하여 시스템 PDP-11을 위해 만든 운영체제가 유닉스 (Unix)

    • 특징

      • C언어로 만들어져서 이식성이 좋다.


유닉스의 장점과 단점

항목 장점 단점
이식성, 호환성, 공개성 개발에 용이함 다양한 버전이 있음
파일 시스템 트리 구조로 사용이 편함 처리 속도 지연
시분할 방식 모든 사용자에게 컴퓨터 자원 균등 분배 업무의 우선 순위 결정이 어려움
명령어 축약 최소로 최대의 효과 초보자는 사용이 어려움
통신 다양한 유틸리티 제공 (UUCP, e-메일 등) -
분산처리 서로 다른 기종 간에도 가능 -
프로그램 개발 도구 다양한 도구 제공 -
한글 지원 자국어 처리 시스템 이용 -
에러 메시지 - 간단하고 불분명함


  1. 리눅스

    • 특징

      • 인터넷 프로토콜인 TCP/IP를 강력하게 지원하는 등 네트워크 기능의 강화
      • 다중 사용자 (Multi User), 다중 프로그래밍(Multi Programming) 방식을 지원하는 안전성 있는 운영체제
      • UNIX와 유사한 형태를 가지기 때문에 익히기가 쉬움
      • 서버용 소프트웨어를 포함한 여러 소프트웨어를 기본으로 제공함
      • 사용자가 사용하기 쉽도록 한 배포판을 무료로 다운 받을 수 있음