본문 바로가기
운영체제/이화여대 반효경 교수님 OS 정리

1. 소개

by latissimus 2022. 7. 20.



Introduction to Operation System 1

이화여자대학교 반효경 교수님의 운영체제 강의를 요약한 내용입니다. 틀린 부분이 있다면 지적해주시면 감사하겠습니다. 강의 링크

1. 운영체제란?

  • 계층의 위치를 잘 보자. 운영체제는 중간에 있다.
  • 각종 소프트웨어를 편하게 사용하도록 하면서, 복잡한 하드웨어를 관리한다.

2. 운영 체제의 목적

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

  • 운영체제는 동시에 독자적으로 컴퓨터가 수행하는 것처럼 보이게 한다.
  • 하드웨어를 직접 다루는 복잡한 부분을 대행한다.

❗️CPU의 연산 속도가 너무 빠르기떄문에, 마치 여러 프로그램을 동시에 실행하거나 독자적으로 실행하는 것처럼 보일 뿐이다.

2.2. 자원을 효율적으로 관리

  • CPU, 메모리, I/O 장치 등의 효율적 관리
    • 주어진 자원으로 최대한 성능 : 효율성
    • 특정한 곳에 지나친 불이익 발생하지 않도록 : 형평성
  • 사용자 및 운영체제 자신을 보호한다.
  • 프로세스, 파일, 메시지 등 관리
  • 메모리의 분배

❗️어떤 프로그램에 메모리를 얼마나 올려야 하는가? 어떻게 분배해야 차별이 적은가?

3. 운영체제의 분류

3.1. 동시 작업 가능 여부

3.1.1. 단일 작업

  • 한번에 하나의 작업 처리
  • ex) MS-DOS 프롬프트
    • 사상 최초의 대중화된 운영체제
    • 한 명령 수행이 끝나기 전에 다른 명령 수행 불가

3.1.2. 다중 작업

  • 동시에 두 개 이상 작업 처리
  • ex) UNIX, MS Windows

3.2. 처리 방식

3.2.1. 일괄 처리(batch processing)

  • 작업 요청의 일정량 모아서 한꺼번에 처리
  • 작업이 완전 종료될 때까지 기다려야 함
  • ex) 초기 Punch Card
    • OMR카드 처럼 펀치를 뚫음. 전산소에 제출하면 모아서 컴파일 잘됐는지 알려주곤 했다.
    • 이것도 당시에는 효율적인 방식이었다.
    • 지금도 특정 상황(매출 집계나, ERP등)에 사용한다.

3.2.2. 시분할

  • 여러 작업 수행할 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
  • 주어진 시간을 나누어 다수의 사용자에게 그 시간을 분배하는 게 가능
  • 일괄 처리 시스템에 비해 짧은 응답 시간
  • ex) UNIX
  • interative
    ❗️매우 짧은 단위로 시분할 되기 때문에 사람이 느끼기에 interative하다. 자원을 최대한 활용하는 것에 초점이 맞춰져있으며, 정확한 시간을 지켜주지는 않는다.

3.2.3. 실시간(Realtime OS)

  • 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 한다.
  • 원자로/공장 제어, 미사일 제어, 반도체 장비, 네비게이션, 블랙박스
    • 제때 제대로 제어가 되지 않으면 치명적인 작업들
    • 파이프라인을 생각
    • 반도체 예시 : 반도체 공정이 중간에 전력이 나가면 파이프라인에 있던 것들이 모두 폐기
      실시간 시스템 개념 확장
  • Hard realtime system (경성 실시간 시스템) : 데드라인 안지키명 치명적
  • Soft realtime system (연성 실시간 시스템) : 데드라인 있지만 심히 치명적이지 않음

3.3. 몇 가지 용어들

  • Multitasking : OS 스케쥴링에 의해 테스크를 번갈아 수행, 독립된 메모리
  • Multiprogramming : 메모리 측면 강조, 프로세서의 자원 낭비 방지. 프로세스 대기 동안 다른 프로그램 실행
  • Time sharing : cpu 강조
  • Multiprocess : fork를 통해 여러 개의 프로그램들을 병렬로 처리, 여러 개의 프로세서가 작업을 병렬처리
  • MultiProcessor : 위에 용어들은 하나의 cpu에서 나누는 것을 의미하는 비슷한 용어이지만, 이 용어는 cpu가 여러 개임을 말하는 하드웨어적인 개념이다.

4. 운영체제의 예

4.1. 유닉스(UNIX)

초창기 유닉스는 대형 컴퓨터를 위한 운영체제이다. 개인용으로 출발한 MS와는 그 방향성이 달랐다.

4.1.1. 특징

  • 대부분의 코드가 C언어로 작성
    • 유닉스를 만들기 위해 C언어 만듦
    • C언어는 기계어와 가깝다. 하드웨어를 직접 다루기 좋다.
    • 이식성이 높다. 대부분 C언어라 다른 컴퓨터에서 사용하기 좋다.
  • 최소한의 커널 구조
    • 커널이 크면 운영체제가 메모리를 많이 차지함
  • 다양한 버전
    • System V, FreeBSD, SunOS, Solaris, Linux

4.1.2. Linux

  • 원래 유닉스 목적과 다르게 개인용으로도 사용.
  • 개인용, 스마트폰, 임베디드 시스템 등 광범위한 사용

4.2. DOS(Disk Operating System)

  • MS사에서 1981년 IBM-PC를 위해 개발
  • 단일 사용자 대상
  • 처음에 앞으로의 제품들의 메모리가 640kb가 넘지 않을거라 예상하고, 이만큼 지원하도록 만들었으나, 하드웨어의 급속한 발전으로 기능에 기능을 덧붙이면서 누더기가 되었다. 시간이 지나 도스 위에서 윈도우즈를 실행했고, 후에는 윈도우즈가 독자적으로 사용되었다.

4.3. MS Windows

  • MS사의 다중 작업용 GUI 기반 운영 체제
  • Plug and Play, 네트워크 환경 강화
  • Dos용 응용 프로그램과 호환성 제공

교수님의 말

  • OS 사용자 관점이 아닌 OS 개발자 관점에서 수강하기
  • 자신이 운영체제라 생각하고, 할 일이 무엇인지 생각하기.

댓글