쩡으니

[운영체제] Introduction to Operating Systems

  1. 운영체제란 무엇인가 ?

    일종의 소프트웨어, 컴퓨터 하드웨어 바로 윗 단에 설치되는 소프트웨어

    컴퓨터 하드웨어와 각종 소프트웨어와 사용자를 연결해 주는 계층

    하드웨어를 효율적으로 관리해주는 역할

    • 좁은 의미의 운영체제 : 커널

      운영 체제의 핵심 부분으로 메모리에 상주하는 부분

    • 넓은 의미의 운영체제 :

      커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념

  2. 운영체제의 목적

    • 시스템의 자원을 효율적으로 관리

      프로세서 (cpu) , 기억장치 (메모리) , 입출력 장치 등의 효율적 관리 ->리소스 효율적 관리

      ​ 사용자간의 형평성 있는 자원 분배

      ​ 주어진 자원으로 최대한의 성능을 내도록

      사용자 및 운영체제 자신의 보호

      프로세스, 파일, 메시지 등을 관리

    • 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공

      운영체제는 동시 사용자/프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공

      하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행

  3. 운영체제의 분류

    • 동시 작업 가능 여부

      단일 작업(single tasking)

      한 번에 하나의 작업만 처리 ex) MS-DOS 프롬프트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없음

      다중 작업(multi tasking)

      동시에 두 개 이상의 작업 처리 ex) UNIX, MS Windows 등에서는 한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있음

    • 사용자의 수

      단일 사용자(single user)

      ex ) MS-DOS, MS Windows

      다중 사용자(multi user)

      ex ) UNIX, NT server

    • 처리 방식

      일괄 처리 (batch processing)

      작업 요청의 일정량 모아서 한꺼번에 처리

      작업이 완전 종료될 때까지 기다려야 함

      시 분할 (time sharing)

      여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용

      일괄 처리 시스템에 비해 짧은 응답 시간을 가짐

      interactive한 방식 - 키보드를 뚜드렸을 때 바로 화면에 나오는 방식

      사람이 느끼기에 빠르게 하면서 주어진 자원을 최대한 활용하는 것이 목적이기 때문에 정확한 시간을 지키거나 그런 것은 아님

      리눅스, 윈도우, ios 등 대부분은 시분할 OS

      실시간(Realtime OS)

      정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS

      데드라인이 있어 정해진 시간안에 반드시 결과가 나오는 시스템

      실시간 시스템의 개념 확장

      Hard realtime system (경성 실시간 시스템)

      데드라인이 지켜지지 않으면 치명적인 결과가 나타나는 시스템

      Soft realtime system (연성 실시간 시스템)

      데드라인이 있지만 지켜지지 않는다고 치명적인 결과를 초래하지는 않음

  4. 몇가지 용어 정리

    • Multitasking

      여러 작업이 동시에 실행되는 것, 짧은 시간 간격으로 프로그램이 동시에 처리되는 것 처럼 보이는 것, 하나의 프로그램이 끝나기 전에 다른 프로그램이 실행 가능

    • Multiprogramming

      멀티 프로그래밍은 메모리에 동시에 올라가 있는 것

    • Time sharing

      시간을 공유하여 쓰는 방법/ 멀티 태스킹과 유사한 용어지만 CPU 쪽을 조금 더 강조하는 용어

    • Multiprocess

      ->구분

      위의 용어들은 컴퓨터에서 여러 작업을 동시에 수행하는 것을 뜻한다.

      Multiprogramming 은 여러 프로그램이 메모리에 올라가 있음을 강조

      Time sharing 은 CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조

      • Multiprocessor

        하나의 컴퓨터에 CPU(processor)가 여러 개 붙어 있음을 의미 -> 고성능 컴퓨팅

  5. 운영 체제의 예

    • 유닉스(UNIX)
      • 코드의 대부분을 C언어로 작성
      • 높은 이식성
      • 최소한의 커널 구조
      • 복잡한 시스템에 맞게 확장 용이
      • 소스 코드 공개
      • 프로그램 개발에 용이
      • 다양한 버전 - Linux , System V, FreeBSD, SunOS
    • DOS
      • 단일 사용자용 운영체제, 메모리 관리 능력의 한계 (주 기억 장치 : 640KB)
    • MS Windows
      • MS사의 다중 작업용 GUI 기반 운영 체제
      • Plug and Play, 네트워크 환경 강화
      • DOS용 응용 프로그램과 호환성 제공
      • 불안정성 -> 초창기에만 해당
      • 풍부한 지원 소프트웨어
    • Handheld device 를 위한 OS
      • PlamOS, Pocket PC , Tiny OS
  6. 운영 체제의 구조

    • CPU - 누구한테 CPU를 줄지 CPU 스케줄링

    • Memory - 한정된 메모리를 어떻게 쪼개어 쓸지 메모리 관리

    • Disk - 디스크에 파일을 어떻게 보관할지 파일 관리

    • I/O device - 각기 다른 입출력장치와 컴퓨터 간에 어떻게 정보를 주고 받을지 입출력 관리

    • 프로세스 관리 - 프로세스의 생성과 삭제, 자원 할당 및 반환, 프로세스 간 협력

    • 그 외 - 보호 시스템, 네트워킹, 명령어 해석기 (command line interpreter)

출처: 이화여대 반효경 교수님 강의

comments powered by Disqus