CS 정리 | OS | 1. 운영체제의 개요 (3) | kocw 반효경 교수님

Konseo·2023년 9월 6일
0

운영체제

목록 보기
3/19

공개 OS와 비공개 OS

  • 공개 소프트웨어
    • 리눅스, 유닉스 등
  • 비공개 소프트웨어
    • 윈도우즈

보통 소스 코드 작성 후 이를 컴파일하여 얻은 바이너리 파일을 실행함으로써 프로그램을 실행한다.

즉, 비공개 OS는 바이너리 파일만 제공하는 것으로 내부 코드를 모르니 어떻게 프로그래밍 했는지는 알 수 없다. 반대로 공개 OS는 소스 코드를 공개했다는 의미임.

🧐 왜 돈을 받고 팔아도 아까울 판에 소스 코드를 공개할까?
소스 코드를 공개하면 많은 사람들이 각자의 상황에 맞게 코드를 수정 및 개선할 수 있고 이를 통해 시장에 점유율을 높이고, 네임벨류가 올라갈 수 있다는 SW시장의 특수성 때문에 소스 코드를 공개한다

운영체제의 좁은 의미와 넓은 의미

  • 좁은 의미
    • 커널이라고 부르기도 한다.
    • OS의 가장 핵심적인 부분이며, 메모리에 항상 상주하고 있다.
  • 넓은 의미
    • 부가적인 유틸리티를 포함하는 개념이다. (ex.파일 복사 등)
    • 항상 메모리에 상주하는 것은 아니며 독립적인 실행파일을 갖는 것이라고 볼 수 있음

운영체제의 분류

1. 동시 작업 가능 여부

  • 단일 작업 (single tasking)
    • 한 번에 하나의 작업만 처리
    • ex. MS-DOS 프롬포트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없음
  • 다중 작업 (multi tasking)
    • 동시에 두 개 이상의 작업 처리
    • ex. 유닉스, 윈도우즈 등에서는 한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램등을 수행할 수 있음

2. 사용자의 수

  • 단일 사용자 (single user)
    • ex. MS-DOS, MS 윈도우즈
  • 다중 사용자 (multi user)
    • ex. UNIX, NT server

3. 처리 방식

  1. 일괄 처리 (batch processing)

    • 작업 요청의 일정량을 모아서 한꺼번에 처리
    • 작업이 완전 종료될 때까지 기다려야함
    • 하나의 처리를 통해 작업을 매번 해야하는 것은 불편하다
    • ex. 초기 punch card 처리 시스템
  2. 시분할 (time sharing)

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

    • 데드라인을 반드시 만족하는 시스템
    • 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야하는 실시간 시스템을 위한 OS
    • Hard realtime systen (ex. 미사일 제어)
    • Sofr realtime system (ex. 비디오 재생 - 24fps을 지키지 못하면 재생이 원활히 되지 않는 경우)

용어 정리

  • multitasking
    • 프로그램 동시 실행
  • multiprogramming
    • 메모리 에 여러 프로그램이 동시에 올라가 있는 상황을 강조
  • time sharing
    • 하나의 cpu 를 가지고 시간을 분할하여 나누어 쓴다는 의미 강조
  • multiprocess
  • multiprocessor
    • 위의 용어들과는 다른 의미를 가짐
    • 하나의 컴퓨터에 CPU(processor)가 여러개 붙어 있음을 의미

운영체제의 예시

  • 유닉스(UNIX)
    • 리눅스보다 먼저 나온 OS이며, 리눅스도 결국 유닉스 계열
    • 대형 서버 를 위해 만들어진 OS 이므로 매우 복잡한 시스템을 갖추고 있음
    • HW 제어는 어셈블리 언어를 통해 해야하는데 사람이 이해하기엔 매우 어렵기 때문에 이 때 C언어를 만들었으며, 따라서 유닉스 코드의 대부분은 C언어로 작성됨
    • C언어는 high level 언어이기에 사용자가 이해하기 편하여 프로그램 개발에 용이하게 됨
    • 최소한의 커널 구조를 갖추고 있어 확장에 용이함
    • 다양한 버전
      • system V, FreeBSD, SunOS, Solaris
      • Linux
  • DOS(Disk Operating System)
    • MS사에서 1981년 개인 PC를 위해 개발
    • 단일 사용자용 OS
  • MS Windows
    • 초기엔 DOS 위에서 돌아가는 응용프로그램 형태였음
    • MS사의 다중 작업용 GUI 기반 OS
    • 계속 업데이트 되고 있음
  • 안드로이드, IOS
    • OS이자 소프트웨어 플랫폼으로도 일컫음
    • 리눅스 커널을 사용함

운영 체제의 구조

profile
둔한 붓이 총명함을 이긴다

0개의 댓글