운영체제

[OS] Chap 01. 운영체제란?

초코송이냠 2024. 4. 8. 22:18

운영체제의 정의

  • 컴퓨터의 사용자와 하드웨어 사이에서 가교 역할을 하는 프로그램
  • 하드웨어 그 자체가 가지고 있는 능력을 십분 발휘되도록 제어해주는 프로그램
  • 컴퓨터가 컴퓨터 밖의 세계와 상호 동작하는 방법을 정의한 프로그램

운영체제의 역할

  • 사용자 인터페이스(User Interface) → 가교와 자원 관리(Resource Management)를 위한 프로그램의 집합

일괄처리(Single-stream Batch Processing System)

1차 operating system의 등장

다수 개의 프로그램을 읽어 저장해 놓고, 한 번에 한 개씩의 프로그램을 실행시켜 주는 방식

작업은 차례대로 한 개씩 처리된다. 이 말은 한 개의 작업이 시작되면,

<Batch System의 특징>

  1. 그 일이 완전히 끝날 때까지 다른 작업은 기다려야 한다는 뜻
  2. 프로그램이 시작해서 완전히 끝날 때까지 중간에 사용자의 개입이 허용되어있지 않다.

→ 에러의 유무와 상관없이 결과물 받을때까지 개입불가하다는 단점

→ 다른 작업은 기다리는게 굉장히 비효율적임

→ 읽어놨던 job들은 디스크(하드)에 저장됨

하나 하면 다음 메모리를 디스크에서 읽어 실행

 

2세대 운영체제 (1960년대 전반기)

  • 트랜지스터 컴퓨터
    • 하드웨어가 좋아져서 컴퓨터 작아지고 전력 줄고 좀 더 빨라지고 값은 싸졌음
  • 1959년 UNIVAC-II : 자기코어 기억장치를 주기억 장치로 사용
  • 1960년대 초 IBM 1400 시리즈
    • 진공관으로 만들어진 컴퓨터에 비해 100배 이상 축소, 속드는 100배 이상 빠름
    • 자기디스크 팩 등장 : 보조 기억 장치
    • 소프트웨어로는 Assembly 언어, FORTRAN, COBOL 등장

→ 운영체제는 컴퓨터에 장착되어 있는 다양한 주변기기들을 효율적으로 관리하는데 관심을 가졌으며, 사용자에게도 보다 나은 서비스를 제공하기 위한 많은 방식 개발

  • 다중 프로그래밍 시스템, 다중처리 시스템, 시분할 시스템, 대화식 시스템, 실시간 시스템

<다중 프로그래밍 시스템(Multiprogramming System)>

  • 일괄처리 시스템의 단점을 보완
  • 다수(Multi) 개의 작업(Program)이 같이 주기억 장치에 있도록 한 방식
  • 한 작업을 처리하는 도중에 입출력이 발생하면 바로 다른 작업을 처리
    • 모든 작업은 실행되기 위해서 주기억 장치(Main Memory)에 있어야 한다는 점. 이것이 바로 폰 노이만이 말한 내장 프로그램 개념(Stored Program Concept)

<다중처리 시스템 (Multiprocessing System)>

  • 여러(Multi) 개의 처리장치(Processor)를 장착하여 동시에 여러 작업을 병렬로 실행하여 처리속도를 최대한 높이는 방식

<시분할 시스템(Time Sharing System)>

  • CPU가 처리해 줄 수 있는 시간을 작업 수에 맞춰 분할하여 각자에게 일정량만큼씩 분배하여 번갈아 가며 처리
  • 실제로는 많은 작업이 있음에도 불구하고 각 작업은 CPU가 자신의 일을 계속해서 처리해 주고 있다는 생각을 함

<대화식 시스템(Interative System)>

  • 시스템과 사용자가 모니터와 입력장치를 통해 마치 대화하듯이 일을 처리해 나가는 방식
    • ex) 작업의 진행사항을 체크하기 위해 모니터가 필요하게 되고, 또 계속해서 다음 일을 의뢰하기 위해 키보드나 마우스같은 입력장치가 필요

3세대 운영체제(1960년대 후반기 ~ 1970년)

  • 직접회로(Integrated Circuit, IC) 사용
  • 부피와 무게를 혁신적으로 줄이고 속도와 신뢰도는 1000배 이상 발전
  • 미니 컴퓨터, 범용 컴퓨터 등장
    • DEC의 미니 컴퓨터, IBM 360 시리즈
  • 다중모드 시분할 시스템 등장
    • 일괄 처리, 시분할, 실시간 작업을 모두 지원
  • 근거리 통신망(Local Area Network, LAN), 소프트웨어 공학, 보안 등
  • UNIX 등장
    • UNIX는 Open Source로 활발한 연구가 되었음. 하지만, 지금은 Open Source가 아님
    • Linux : 1990년대 초 개발

4세대 운영체제(1970년대 후반기 ~ 현재)

  • LSI, VLSI 사용
  • 마이크로프로세서의 개발로 개인용 컴퓨터가 본격적으로 보급
  • 분산(Distributed) 및 병렬(Parallel) 처리 시스템 등장
  • 이기종 간의 자유로운 통신, 데이터베이스, 인공지능 등장

→ 하드웨어가 그만큼 좋아짐

 

OS 안에는 어떤 것들이?

쉘은 유닉스 나오면서 쓰고 그 이전에는 이걸 command interpreter라고 명령어 번역기 라고 했었음

그 운영체제에서 사용할 수 있는 명령어 예를 들어 리눅스면 ‘ls’

  • 쉘(Shell) : 사용자나 응용 프로그램이 운영체제와의 의사소통을 위해 필요한 요소
    • ex) 정보 교환, 아이콘이나 메뉴를 클릭해서 프로그램 실행
  • 장치 관리 : 시스템에 있는 주변 장치(키보드, 모니터, 프린터, 하드디스크) 제어
  • 파일 관리 : 사용자 또는 프로그래머로 하여금 파일을 만들고, 지우고, 수정하고 이름을 부여하며, 디렉토리 등을 관리
  • 메모리 관리 : 주기억 장치의 관리. 실행될 프로그램을 위해 주기억 장치의 일정 부분을 할당하거나 주기억 장치 안에 있는 프로그램들의 경계를 설정하여 서로 침범하지 못하게 하는 등의 일처리
  • 처리기 관리 : 컴퓨터의 처리기 즉, CPU의 처리 능력을 각 작업에 효과적으로 배분토록 관리
  • 이들 관리 부분들은 밀접한 연관을 가지고 실행됨

OS는 컴퓨터의 어디에 있을까?

  • 운영체제는 커널, 쉘과 유틸리티 프로그램으로 나뉨
  • 커널
    • 운영체제의 각종 기능들 중 사용자와 실행 프로그램을 위해 매우 빈번하게 사용되는 부분
    → 한번 실행할때마다 빨리빨리 실행
    • 컴퓨터가 처음 부팅될 때에 주기억 장치에 적재되어 시스템의 운영이 종료될 때까지 계속해서 주기억 장치에 남아 있게 되는 부분
    →빨리빨리 실행하려고 항상 메인메모리에 남아있음
    • 운영체제의 핵심이며 핵(Neucleus), 관리자(Supervisor), 메모리 상주(Memory Resident) 프로그램이라고도 부름
    • IO.SYS와 MSDOS.SYS 그리고 COMMAND.COM와 같은 프로그램
  • 유틸리티 프로그램
    • PRINT.EXE, FORMAT.EXE, BACKUP.EXE와 같은 프로그램
  • 근래에는 커널 중에서도 좀 더 빠른 실행이 요구되거나 높은 수준의 보호가 필요한 프로그램들은 아예 마이크로 프로그래밍하여 ROM이나 PLA(Programmable Logic Array)와 같은 칩의 형태로 만들어 놓기도 함
  • 펌웨어(firmware)

듀얼 모드

  • 대부분의 컴퓨터 시스템에는 두 개의 모드, user mode와 kernel mode를 정해 놓고 각각의 프로그램은 이중 하나의 모드에서 실행되도록 한다
  • kernel mode : 운영체제가 실행되는 모드, 모든 명령이 수행 가능
  • user mode : 사용자 프로그램, 응용 프로그램 등이 실행되는 모드
  • 목적
    • 시스템의 보호
    • 장치들의 효율적인 관리
  • 시스템 호출
    • 사용자 프로그램이 운영체제의 어떤 서비스를 요구할 때 커널을 호출하는 것
    • 운영체제는 사용자가 요구한 서비스를 커널 모드에서 실행한 후, 사용자 모드에서 사용자 프로그램이 실행되도록 리턴함

 

이 글은 <OS? Oh Yes! 누워서 보는 운영체제 이야기> 교재를 바탕으로 공부하여 정리한 글입니다.

'운영체제' 카테고리의 다른 글

[OS] Chap 02. 들어가기 전에  (0) 2024.05.20