운영체제 개요 [운영체제 정보 기술의 원리 2장]

Sanghoon Han·2022년 1월 4일
0
post-thumbnail

1. 운영체제의 정의

  • 운영체제(operating system)란 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어를 말함
  • system 이라고 불리는 이유는 하드웨어가 운영체제와 한몸이 되어야만 사용자에게 쓰일 수 있는 진정한 컴퓨터 시스템이 되기 때문
    • 운영체제 자체도 하나의 소프트웨어로서 전원이 켜짐과 동시에 메모리에 올라감
  • 단 전체가 올라가지 않고 운영체제 중 항상 필요한 부분만 전원이 켜짐과 동시에 올라감
  • 커널
    • 메모리에 상주하는 운영체제의 부분

2. 운영체제의 기능

⭐️ 두가지 주요기능 ⭐️

  1. 시스템 내의 자원(resource)을 효율적으로 관리하는 것
    • 효율성, 형평성
  2. 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공
    1. 사용자 및 프로그램들에게 각각 독자적으로 컴퓨터를 사용하는 것과 같은 ‘환상’을 제공
    2. 복잡한 부분은 운영체제가 대행, 사용자, 프로그램은 그에 대한 자세한 내용을 알지 못해도 프로그램을 실행할 수 있도록 해줌
  3. 보안및 보호 기능 수행

3. 운영체제의 분류

  1. tasking에 따른 분류
    1. 단일작업 (single tasking)
      1. 한 번에 하나의 프로그램만 실행시킬 수 있음
      2. Disk Operating System:DOS
    2. 다중작업 (multi tasking)
      1. 동시에 2개 이상의 프로그램을 처리할 수 있는 운영체제

💡 여러 프로그램이 CPU와 메모리를 공유함
비록 CPU가 하나밖에 없어 매 순간 하나의 프로그램만 CPU에서 실행될 수 있더라도 CPU의 처리 속도가 워낙 발라 수 밀리초(ms) 이내의 짧은 여러 규모로 여러 프로그램들이 CPU에서 번갈아 실행되면 사용자 입장에서는 여러 프로그램이 동시에 실행되는 것 처럼 보이기 때문

1. 시분할 시스템(time sharing system)
2. 다중프로그래밍 시스템(multi-programming system)
    1. 여러 프로그램들을 동시에 메모리에 올려놓고 처리하는 시스템
3. 대화형 시스템(interactive system)
    1. 보드 입력의 결과를 곧바로 화면에 보여줌 
4. 다중처리기 시스템(multi-processor system) 🔥
    1. 하나의 컴퓨터 안에 cpu가 여러 개 설치된 경우를 뜻함


2. 다중 사용자용 운영체제
    1. 이메일 서버, 웹서버 등 흔히 서버라고 부르는 컴퓨터
  1. 작업을 처리하는 방식
    1. 일괄 처리 방식(batch processing)
      1. 요청된 작업을 일정량씩 모아서 한꺼번에 처리하는 방식
      2. 응답시간이 길다는 단점
      3. punch card 처리 시스템
    2. 시분할 방식
      1. 컴퓨터의 처리능력을 일정한 시간 다누이로 분할해 사용하는 방식
      2. 짧은 응답시간
      3. 자기 혼자 독점적으로 사용하는 것처럼 생각할 수있음
      4. 사용자의 요청에 대한 겨로가를 곧바로 얻을 수 있는 시스템- 대화형 시스템(대표적인 특징)
    3. 실시간 운영체제 (Real Time)
      1. 정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장해야 한느 시스템
      2. 일정 시간 안에 작업이 완료되지 못할 경우에는 동작 자체가 되지 않거나 큰 위험을 초래할 가능성이 있는 시스템에 사용
      3. 원자로, 공장 제어 시스템, 미사일 제어 시스템
      4. 시간 제약 중요성으로 나뉨
        1. 경성 실시간 시스템 (hard realtime system)
          1. 로켓, 원자로, 제어 시스템
        2. 연성 실시간 시스템 (soft realtime system)
          1. 스트리밍 시스템
          2. 데이터가 정해진 시간 단위로 전될어야 올바른 기능을 수행할 수있는 시스템

4. 운영체제의 예

  1. MS 윈도우
    1. 다른 운영체제에 이미 익숙한 사용자를 비롯해 컴퓨터를 처음 다루는 초보자에게도 쉽게 배울 수 있는 방법 제공
    2. 시스템에 새로운 하드웨어를 장착하면 운영체제가 자동으로 하드웨어르 감지하여 그에 맞게 설정된다는 점 (플러그 앤 플레이 : plug and play)
    3. 네트워크 프로그램 지원
    4. 안정성이 유닉스 같이 오랜 전통을 가지는 운영체제에 비해 떨어짐
      1. 위를 보완한 것 이 윈도우 NT
  2. 유닉스
    1. 개발 환경을 위해 설계된 운영체제로서 이식성(portability)이 좋음
      1. 이식성 : 해당 소프트웨어를 다른 기종의 기계로 옮기는 것이 얼마나 용이한가
    2. 커널의 크기가 작음
    3. 소스코드가 공개되었음
    4. 어셈블리 대신 대부분 C 언어로 작성 되었음
    5. 리눅스의 등장으로 대형 서버뿐 아니라 개인용 컴퓨터 에서도 유닉스를 널리 사용할 수 있음
    6. 대형 컴퓨터 및 전문적인 목적의 컴퓨터에 사용되기에 적합

5. 운영체제의 자원 관리 기능

운영체제의 가장 핵심적인 기능은 자원을 효율적으로 관리!

  1. CPU 관리 방법

    1. CPU 스케줄링: 매 시점 어떠한 프로세스에 CPU를 할당해 작업을 처리할 것인지 결정하는 일
      1. CPU를 가장 효율적으로 사용하면서 형평성을 유지
    2. 선입선출 (First Come First Served: FCFS)
      1. 도착한 프로세스들 중 먼저 온 것을 먼저 처리해주는 방식
      2. 먼저 얻은 프로세스가 원하는 작업을 완료할 때까지 다른 프로세스 들이 CPU를 사용하지 못한다.
      3. CPU 자체의 효율적 ok, 전체 시스템 입장에서 효율적 x
        1. 긴 시간 걸리는 작업 먼저, 짧은 시간 걸리는 작업들 나중에
        2. 장시간 기달려야 함...
    3. 라운드 로빈(Round Robin)
      1. 선입선출 기법의 단점을 보완하고자 고안된 기법
      2. cpu를 한 번 할당받아 사용할 수 있는 시간을 고정된 시간으로 제한
      3. 정해진 시간이 지나면 cpu를 내어놓고 cpu대기열의 제일 뒤에가서 줄을 서야 함
      4. 일반적으로 1회 할당시간은 밀리초 단위를 사용함(다수의 사용자가 동시에 접속할 때에도 1초 이하의 응답시간을 보장받을 수 있게 됨)
    4. 우선순위(priority) 기법 등이 있음
      1. cpu사용을 위해 대기중인 프로세스들에 우선순위를 부여 우선순위가 높은 프로세스에 cpu를 먼저 할당함
      2. 상댖거으로 더 중요한 프로세스가 있을 수 있음 그런 프로세스의 우선순위를 높게 하여 cpu를 먼저 획득할 수 있도록 함
      3. 기다린 시간이 늘어날수록 우선순위를 점차 높여주는 방안도 있음
  2. 메모리 관리 방법

    1. 메모리란 cpu가 직접 접근할 수 잇는 컴퓨터 내부의 기억장치임
    2. cpu에서 실행되려면 해당 부분이 메모리에 올라가 있어야 함
    3. 메모리의 어느부분이 어떤 프로글매에 의해 사용되고 있는지는 주소(address)를 통해 관리됨
    • 고정분할 방식 (fixed partition)
      • 해당 메모리안에 남는 영역 (내부 조각) 발생
    • 가변분할 방식 (variable partition)
      • 매 시점 프로그램의 크기에 맞게 메모리를 분할해서 사용하는 방식
      • 내부조각 발생 x
      • 외부조각 발생 (프로그램에 할당되지는 않았지만 그 크기가 작아 프로그램을 올리지 못하는 메모리 영역을 말함)
    • 가상 메모리 (virtual meemory)
      • 물리적 메모리보다 더 큰 프로그램이 실행 되는것을 지원함
      • 가상메모리의 크기에 의해 결정
      • 모든 물리적 메모리와는 독립적으로 0번지부터 시작하는 자신만의 가상메모리 주소를 가짐
      • 가상 메모리의 주소를 물리적 메모리 주소로 매핑하는 기술을 이용해 주소를 변환
      • 가상메모리 기법에서는 물리적 메모리의 크기와 상관 없이 사용할 수 있는 메모리의 크기가 충분히 큼
      • 가능하게 원리는 전체 크기가 클지라도 전체가 항상 동시에 사용되는 것은 아님
      • 현재 사용되고 있는 부분만 메모리에 올리고 나머지는 하드디스크와 같은 보조기억장치에 저장함
      • 스왑 영역(Swap area) : 보조기억 장치에 저장되는 영역
      • 페이지(page) 가상 메모리 주소 공간: 동일한 크기의 작은 단위로 나뉘어 물리적 메모리와 스왑영역에 일부분 저장됨
  3. 주변 장치 및 입출력 방식

    1. 인터럽트(interrupt)라는 메커니즘을 통해 관리가 이루어짐
    2. 주변장치들은 CPU의 서비스가 필요한경우 신호를 발생시켜 서비스 요청을함
    3. 이때 발생시키는 신호를 인터럽트라고 함
    4. 인터럽트가 발생했을 때도 직전의 작업 상태를 잠시 저장해두고 인터럽트를 먼저 처리하게 됨
    5. 서로 다른 인터럽트 처리루틴을 가지고 있음
    6. 인터럽트 처리루틴: 인터럽트가 발생했을 때 해주어야 할 작업을 정의한 프로그램 코드를 말함
    7. 인터럽트 발생 → 인터럽트 처리 루틴 찾음 → 정의된 코드에 따라 일을 수행
    8. 컨트롤러(controller) : 장치에서 일어나는 업무를 관리하기 위한 일종의 작은 cpu
      1. 컨트롤러 해당 장치에 대한 업무를 처리,

      2. 해당 장치 업무 후 → 메인 cpu에 인터럽트 발생시켜 보고하는 역할을 함

      3. 키보드 입력 → 컨트롤러 인터럽트 발생 → cpu에게 인터럽트 사실 전달

        → cpu 현재 수행 중이던 작업 상태 저장

        → 보드 인터럽트 처리루틴 찾음

        → 처리루틴은 키보드로부터 입력받은 내용을 메모리의 특정 부분에 저장

        → 해당 프로그램에 키보드 입력이 들어왔음을 알림

        → 인터럽트 처리 완료

        → 인터럽트 발생하기 직전 상태 복구및 중단되었던 작업 재개

Reference

반효경, 운영체제와정보기술의원리, 이화여자대학교출판문화원, 2020.05.04, p45~65

profile
Fail Fast learn Faster

0개의 댓글