강의소개와 운영체제 소개

Lee Jeong Min·2022년 4월 20일
6

운영체제

목록 보기
1/12
post-thumbnail

강의 소개

수업을 듣기전 C와 자료구조에 대한 기본적인 개념 필요!

강의 목표

운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각 요소 및 그 알고리즘의 핵심적인 부분에 대해 기초부터 학습한다.

강의 내용

  • 운영체제 개요
  • 컴퓨터시스템의 구조
  • 프로세스 관리
  • CPU 스케줄링
  • 병행 제어
  • 데드락
  • 메모리 관리
  • 가상 메모리
  • 파일 시스템
  • 입출력 시스템
  • 디스크 관리

운영체제란 무엇인가?

컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층

  • 협의의 운영체제(좁은 의미) → 커널
    • 운영체제의 핵심 부분으로 메모리에 상주하는 부분
  • 광의의 운영체제(넓은 의미)
    • 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함하는 개념

전공자 입장에선 보통 커널을 의미함

운영체제의 목표

위 그림에서 볼 수 있듯이, 두 가지의 목표가 있다.

  • 컴퓨터 하드웨어 ↔ 운영체제
  • 운영체제 ↔ 사용자

사용자의 입장: 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공. 즉, 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행해줌

전공자의 입장: 컴퓨터 시스템의 자원을 효율적으로 관리하는것이다.

여기서 말하는 자원이란 프로세스(CPU), 메모리, 기억장치, 입출력 장치등을 말한다.

자원의 효율적 관리란?

  • 사용자간의 형평성 있는 자원 분배
  • 주어진 자원으로 최대한의 성능을 내도록

운영체제의 목적

  • 자원 효율적 관리
  • 사용자 및 운영체제 자신의 보호
  • 프로세스, 파일, 메시지 등을 관리

운영 체제의 분류

  • 동시 작업 가능 여부

    • 단일 작업: 한 번에 하나의 작업만 처리(ex: MS-DOS 프롬프트)
    • 다중 작업: 동시에 두 개 이상의 작업 처리(ex: UNIX, MS Windows등)
  • 사용자의 수

    • 단일 사용자(ex: MS-DOS)
    • 다중 사용자(ex: UNIX, NT Server)
  • 처리 방식

    • 일괄 처리(batch processing)
      - 작업 요청의 일정량 모아서 한꺼번에 처리
      - 작업이 완전 종료될 때까지 기다려야함(옛날 컴파일러 하루 지나야 결과가 나옴)

      현대의 운영체제에 적합하지 않음

    • 시분할(time sharing)
      - 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 식나 단위로 분할하여 사용
      - 일괄 처리 시스템에 비해 짧은 응답 시간을 가짐
      - interactive한 방식

      현대의 운영체제

    • 실시간

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

      • ex) 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어

        시분할과 비슷해보이지만, 프로그램이 동작하기 위해 정확한 시간이 필요로 하는 운영체제

    • 실시간 시스템의 개념 확장
      - Hard realtime system(경성 실시간 시스템)
      - Soft realtime system(연성 실시간 시스템)

      실시간 컴퓨팅 - 위키백과, 우리 모두의 백과사전

몇 가지 용어

  • Multitasking: 컴퓨터 전반에서 하나의 프로그램이 끝나기전에 다른 프로그램이 컴퓨터에서 실행이 가능한것을 말함

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

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

  • Multiprocess: 여러 프로그램이 동시에 실행

  • Multiprocessor: 하나의 컴퓨터에 CPU가 여러 개 붙어 있음을 의미

운영 체제의 예

  • 유닉스(UNIX) - 초창기의 목적은 대형 컴퓨터를 위한 운영체제
  • DOS - 개인용 컴퓨터를 위한 운영체제(단일 사용자용 운영체제)
  • MS Windows - 다중 작업용 GUI 기반 운영 체제
  • Handheld device를 위한 OS

운영 체제의 구조

CPU가 한개일때 작업이 긴 것이 있으면 나머지 작업은 오래 기다려야 하는데 이를 해결하는 방법?

위와 같은 고민을 한 결과 → CPU 스케줄링

프로그램이 너무 많아서 메모리에 조금씩 밖에 못올라와있다면 프로그램을 실행시킬때마다 디스크에 가서 불러옴 → 원할한 동작 불가

메모리 관리의 필요성

디스크를 읽을때 헤드가 움직이기 때문에 이를 더 효율적으로 읽어들이는 방법?(움직임을 최소화 하면서 많은 요청을 빨리 처리하는 방법을 알아야 함)

파일 관리를 효율적으로 하는 방법

I/O device를 어떻게 관리할 것인가? → 컴퓨터에 비해 훨씬 느림

컴퓨터와 통신하기 위해 인터럽트라는 것을 사용하여 CPU에게 무언가 작업할 것이 있음을 알림

입출력 관리

운영체제 과목의 수강 태도

OS 사용자 관점이 아닌 OS 개발자 관점에서 수강!

본인을 Windows XPLinux 같은 운영체제라고 생각하고 무엇을 해야하는지 생각해보면 내용을 이해하기 편할 것이다.

참고사이트

http://www.kocw.net/home/cview.do?cid=3646706b4347ef09

profile
It is possible for ordinary people to choose to be extraordinary.

0개의 댓글