본문 바로가기
Study/운영체제

[운영체제] 1. Introduction to Operating Systems 필기

by 코딩삐약 2021. 3. 4.

운영체제란 무엇인가?

 

  • 운영체제(Operating System, OS)?
  • 컴퓨터 하드웨어 바로 위에 설치되어 사용자 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층

 

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

 

  • 운영체제의 목적 :
  • 컴퓨터 시스템의 자원을 효율적으로 관리
    • 프로세서, 기억장치, 입출력 장치 등의 효율적 관리
      • 주어진 자원으로 최대한의 성능을 내도록
      • 사용자 간의 형평성 있는 자원 분배
    • 사용자 운영체제 자신의 보호
    • 프로세스, 파일, 메시지 등을 관리

 

  • 컴퓨터를 편리하게 사용할 있는 환경 제공
    • 운영체제는 동시 사용자/프로그램들의 각각 독자적 컴퓨터에서 수행되는 같은 환상을 제공
    • 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행

 

서로 다른 프로그램을 동시에 실행하지만 사용자는 독자적으로 실행한다고 느낌

 

  • 운영 체제의 분류 - 동시 작업 가능 여부

 

  • 운영 체제의 분류 - 사용자의

 

  • 운영 체제의 분류 - 처리 방식
  • 일괄 처리 (batch processing)
    • 작업 요청의 일정량 모아서 한꺼번에 처리
    • 작업이 완전 종료될 때까지 기다려야

) 초기 Punch Card 처리 시스템

현대에 찾아보기 어려움

OMR카드처럼 마킹해서 전산소에 제출하면 컴퓨터에 직접 집어넣어서 컴파일해서 다음 확인

 

  • 시분할 (time sharing)
    • 지금 사용하는 컴퓨터 자체 (범용적인 컴퓨터에서 사용)
    • 여러 작업을 수행할 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
    • 일괄 처리 시스템에 비해 짧은 응답 시간을 가짐

) UNIX

  • Interactive 방식 (반응이 바로 나오는 방식)

정확한 시간을 지켜주거나 그런 아님

여러 사람에 특화된 시스템

윈도우, 리눅스, IOS, 안드로이드 ...

 

  • 실시간(Realtime OS)
    • 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS
    • 특수한 목적을 가진 시스템에서 사용
    • ) 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어
  • 실시간 시스템의 개념 확장
    • Hard realtime system(경성 실시간 시스템) -) 데드라인을 넘기면 문제가 생기는 반도체 공장이거나 미사일이 엉뚱한데 날아간다거나
    • Soft realtime system(연성 실시간 시스템) - ) 데드라인을 맞추면 영화가 끊김 문제는...X 데드라인은 존재

사실은 컴퓨터로 영화보는 Realtime OS 동작하진 않는다..

핸드폰으로 자동차 네비게이션, 블랙박스 어플리케이션과 같은

 

지금 사용하고 있는 운영체제는

다중 사용자 가능, 다중 작업가능, 시분할을 사용하고 있다~

 

  • 가지 용어
    • 아래의 용어들은 컴퓨터에서 여러 작업을 동시에 수행하는 것을 뜻한다.
    • Multitasking : 하나의 프로그램이 끝나기 전에 다른 프로그램이 실행가능한
    • Multiprogramming : 메모리에 동시에 여러 프로그램이 올라가 있음을 강조
    • Time sharing : CPU 시간을 분할하여 나누어 쓴다는 의미를 강조
    • Multi process
      •  Mulitprocessor : 하나의 컴퓨터에 CPU (processor) 여러 붙어 있음을 의미

 

  • 운영 체제의
  • 유닉스(UNIX)
    • 초기의 유닉스는 대형컴퓨터, 여러 사용자들이 접속해서 사용하는 서버를 위한 운영체제였다
    • 기본적으로 멀티태스킹 가능
    • 코드의 대부분을 C언어로 작성
    • 높은 이식성
    • 최소한의 커널 구조
    • 복잡한 시스템에 맞게 확장 용이
    • 소스 코드 공개
    • 프로그램 개발에 용이
    • 다양한 버전
      • System V, FreeBSD, SunOS, Solaris
      • Linux

 

  • DOS(Disk Operating System)
    • MS사에서 1981 IBM-PC 위해 개발
    • 단일 사용자용 운영체제, 메모리 관리 능력의 한계 ( 기억장치 : 640KB)

 

  • MS Windows
    • 개인용 컴퓨터 PC 위한 운영체제로 출발
    • MS사의 다중 작업용 GUI 기반 운영 체제
    • Plug and Play, 네트워크 환경 강화
    • DOS 응용 프로그램과 호환성 제공
    • 불안정성
    • 풍부한 지원 소프트웨어

 

  • Handheld device 위한 OS
    • PalmOs, Pocket PC(WinCE), Tiny OS

 

  • 운영 체제의 구조

 

여러 자원들을 표시한 그림

CPU 스케줄링 : 누구에게 CPU 줄까?

일상적으로는 먼저 것을 먼저 처리해줌

이런 방식으로 하면 ~? 대단히 비효율

빠른 CPU 활용하기 위해 짧은 시간으로 줬다 뺏다

 

Memory 관리 :  한정된 메모리를 어떻게 쪼개어 쓰지?

그때 그때 특정 작업에 몰아주는 방식

크기가 한정되어 있어 Disk에서 다른 것을 놓으려 어떤 것을 쫓아낼 것인가

가까운 미래에 사용될 것을 예측

과거의 사용이력을 봐서 예측

사용횟수가 별로 없는 것을 쫓아냄

 

Disk 파일 관리 : 디스크에 파일을 어떻게 보관하지?

디스크의 헤드를 기준으로 원판 ,밖에서 들어옴

먼저 들어온 순서대로 하면 왔다갔다함.

엘리베이터처럼 디스크도 헤드가 이동하면서 중간에 요청이 있으면 처리하며 지나

어떻게 하면 움직임을 최소화하며 요청을 빠르게 수행할 있을까

 

 

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

I/O device 다른 자원보다 훨씬 느림

 

프로세스 관리 :

프로세스의 생성과 삭제

자원 할당 반환

프로세스 협력

 

: 보호 시스템

네트워킹

명령어 해석기 (command line interpreter)

 

  • 운영체제 과목의 수강태도