본문 바로가기
운영체제

[OS? OhYes!] Ch1 요약 & 복습

by sum_mit45 2022. 7. 2.
728x90
반응형

[소프트웨어]

소프트웨어

  시스템 소프트웨어 응용 소프트웨어
구성 운영체제 + 시스템 프로그램 응용 프로그램 집단
특징 컴퓨터 기종에 따라 다르다 기종에 관계없이 작성 가능하다.
윈도우 카카오톡, 롤 등
운영체제와 시스템 프로그램은 그 기능을 어떻게 보느냐에 따라 명확히 구분할 수 없는 경우가 많다.

컴퓨터 시스템의 구성요소

사용자 ↔️ 응용프로그램 ↔️ 운영체제 (시스템 프로그램) ↔️ 하드웨어

운영체제

  • 1) 컴퓨터의 여러 응용 프로그램을 설치되게 해 줌 2) 여러 가지 장치를 효율적으로 작동하도록 하며 3)사용자가 컴퓨터를 손쉽게 이용할 수 있도록 해 주는 프로그램의 집단
  • 컴퓨터의 사용자와 하드웨어 사이에서 가교(interface, flatform) 역할을 하는 프로그램
  • 사용자 인터페이스(User Interface)자원 관리(Resource Management)를 위한 프로그램의 집합

시스템 프로그램

  • 컴퓨터 하드웨어에 의존적이며 그 시스템을 정상적으로 작동시키기 위해 필요한 프로그램

[운영체제의 변천사]

1. 수동식 계산기

2. 자동계산기 시대

  • 증기기관으로 작동하는 해석장치

3. 1세대 운영체제(1940년대-1950년대)

  • 컴퓨터 시스템의 1세대는 진공곤 컴퓨터의 시기 → 세계 최초의 컴퓨터 ENIAC
  • 폰 노이만의 2진 부호 체계를 채택하여 → EDSAC
  • EDSAC이 개발되었을 때만 하더라고 프로그램을 계산기에 붙어 있는 스위치나 버튼 등을 일일이 조작하여 기계어로 만들어야 했기 때문에 운영체제가 따로 개발되어 활용될 여지가 없었다. IBM 701에 와서야 운영체제의 효시, 즉 1세대라 할 수 있는 기능(=일괄처리시스템)이 등장했다.
📌 일괄처리 시스템(Single-stream Batch Processing Systems)
일괄처리 : 1) 다수 개의 프로그램을 읽어 저장해 놓되, 2) 한 번에 한 개씩의 프로그램을 실행시켜 주는 방식, 프로그램들은 천공카드 위에 만들어지며, 만들어진 프로그램들을 카드 판독기가 읽어 저장하는 것. ex. 지폐 세는 기계
- 1) 처리해야 할 작업(job)들을 한꺼번에 여러 개(single-stream) 준비시켜 놓고 다음 작업의 처리를 자연스럽게 연결 → job-to-job의 transition을 smooth하게 한다
- 2) Batch : 작업이 차례대로 한 개씩 처리됨. 한 개의 작업이 시작되면(=cpu의 서비스를 받아서 실행되면) 그 일이 완전히 끝날 때까지 다른 작업은 기다려야 한다. 작업이 끝날 때까지 사용자의 중간 개입이 허용되지 않는다.→ 일괄처리를 하되 다중 프로그래밍을 하는 Batch로 발전. (의미?)

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

1. 1947~1959년

  • 벨 연구소에서 트랜지스터 발명 → 트랜지스터(진공관 대체) + 자기코어 기억 장치(당시의 주기억장치) = 트랜지스터 컴퓨터

2. 1960년대 초 IBM 1400 시리즈 발매

  • 진공관에 비해 크기는 100배 이상 축소, 속도는 100배 이상 빨라짐
  • 전력 사용량과 열 발생량을 매우 줄일 수 있음
  • 자기 디스크 팩(당시의 보조기억장치)의 등장

3. 소프트웨어

  • Assembly 언어, FORTRAN, COBOL 등이 소개됨

4. 이 때의 운영체제는 다양한 주변기기들을 효율적으로 관리하는 데 관심을 기울이고, 사용자에게도 더 나은 서비스를 제공하기 위한 방식들이 개발됨. 시스템의 여러 자원을 효과적으로 운영하여 사용자의 만족도와 직결되는 컴퓨터의 처리능력을 높이고자 한 것.

CPU를 최대한으로 가동 시키는 것 = 시스템의 능력을 최대한 발휘하게 하는 것 = 사용자들의 작업을 가장 빨리 처리해 주는 것.
CPU를 최대한으로 가동시키기 위한 운영체제의 방식들이 개발됨

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

다중처리 시스템 (Mulitprocessing System)

시분할 시스템 (Timesharing System)

대화식 시스템 (Interactive System)

실시간 시스템 (Realtime System)

 
📌 일괄처리의 문제점
한 번에 한 개의 작업을 처리해 줌, 즉 한 작업이 완료될 때까지 CPU를 다른 작업에 넘기지 않는다. 한 개의 작업이 처리되는 동안 실제로 CPU를 사용하는 기간을 매우 짧아서 이 외의 기간에 CPU는 할 일 없이 낭비된다.
📌 폰 노이만의 내장 프로그램 개념(Stored Program Concept) : 어떤 작업도 실행되기 위해서는 주기억 장치에 있어야 함. 오늘날 컴퓨터에서 채택하고 있는 방식
📌
[다중프로그래밍 시스템 Multiprogramming System]
 폰 노이만의 내장 프로그램 개념에 의해 CPU를 바로 다른 작업에 동원하여 계속 가동시키고자 한다면, CPU를 받게 될 후보 작업들이 여러 개의 주기억 장치에 있도록 하면 된다. 다수 개의 작업(program)이 같이 주기억 장치에 있도록 한 방식

[다중처리 시스템 Multiprocessor System]
 여러 개의 처리장치(processor, CPU와 같은 기능)를 장착하여 동시에 여러 작업을 병렬(parallel)로 실행하여 처리 속도를 최대한 높이는 방식여러 작업을 동시에 실행된다 (=다중프로그래밍 시스템을 전제하고 있다)

[시분할 시스템 Timesharing System]
 CPU가 처리해 줄 수 있는 시간(time)을 작업 수에 맞춰 분할하여 각자에게 일정량만큼씩 분배(share)하여 번갈아가며 처리하는 방식. 실제로는 많은 작업이 이루어지고 있음에도 불구하고 각 작업은 CPU가 자신의 일을 계속해서 처리해 주고 있다고 생각
→ 사용자에게 바로바로 응답가능
→ 여러 작업을 동시에 실행된다 (=다중프로그래밍 시스템을 전제하고 있다)

[대화식 시스템 Interactive System]
 시분할 시스템의 응답을 즉시 보기 위해 모니터가 필요하고, 다음 일을 의뢰하기 위해 입력장치가 필요함. 시스템과 사용자가 모니터와 입력장치를 통해 마치 대화하듯이 일을 처리해 나가는 방식→ 시분할 시스템을 전제 하에,

5. 3세대 운영체제(1960년대 후반기-1970년대)

1. 집적회로(Integrated Circuit, IC)개발되어 트랜지스터 대체

  • 컴퓨터의 부피와 무게를 혁신적으로 줄임
  • 속도와 신뢰도는 1000배 이상 늘어남 → 하드웨어의 발전이 소프트웨어의 발전으로 이어짐

2. 운영체제

  • 다중모드(Multimode) 시분할 시스템: 일괄처리와 시분할 그리고 실시간 작업을 모두 지원
  • UNIX 운영체제의 출현: 소스코드의 공개 → 각자의 취향에 맞는 운영체제를 개발하는 연구 진행 → 개인용 컴퓨터, mainframe 등 다양한 시스템의 운영체제로 사용됨

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

1. 고밀도 집적회로의 발전 → 컴퓨터 제조기술과 이용 분야에 진화

  • 컴퓨터 사용의 범용화
  • 입출력 장치의 다양화
  • 저장 장치의 대용량화
  • 데이터 통신의 발전 및 정보 산업의 출현
  • 마이크로프로세서의 등장 : 연산장치와 제어장치, 필요한 register들을 하나의 칩에 집적시켜 넣음 → 컴퓨터의 크기와 가격을 획기적으로 줄임 → 개인용 컴퓨터가 보급

2. 운영체제: 최소의 비용으로 최대의 효과를 낼 수 있는 방향

  • 값싼 하드웨어 비용으로 분산(distributed) 및 병렬(parallel) 처리 시스템 등장
  • 다른 기종간의 자유로운 통신과 프로그램 작성
  • 데이터베이스, 인공지능 등의 등장

[OS]

os의 구성요소

운영체제는 사용자 인터페이스(user interface) + 자원 관리(resource management)를 위한 프로그램의 집합

사용자 인터페이스

  • 쉘(shell), 명령어 번역기(command interpreter)
  • 사용자나 응용 프로그램이 운영체제와의 의사소통, 즉 정보 교환이나 운영체제로의 요청 창구로 필요한 요소

자원 관리

네 종류의 관리들이 서로 동떨어져 행해지는 것이 아니라 밀접한 연관을 가지고 실행-

장치 관리 : 시스템에 있는 주변장치(키보드, 모니터, 프린터, 하드디스크 등) 제어

파일 관리 : 파일 만들고 지우고 수정, 디렉터리 관리

메모리 관리 : 주기억 장치 관리, 실행될 프로그램을 위해 주기억 장치의 일정 부분을 할당하거나 주기억 장치 안에 있는 프로그램들의 경계를 설정하여 서로 침범하지 못하게 함

처리기 관리 : CPU(컴퓨터의 처리기)의 처리 능력을 각 작업에 효과적으로 배분

 

운영체제의 분류

  • 사용자 인터페이스와 관리 프로그램들이 운영체제를 이루는데 크게 두 부류로 나뉜다.=
  • 운영체제에서 커널과 유틸리티를 구분 짓는 명확한 잣대는 없다.

커널(Kernel)

  • 커널(Kernel) = 핵(Neucleus) = 관리자(Supervisor) = 메모리 상주(Memory Resident) 프로그램
  • 운영체제의 각종 기능들 중 사용자와 실행 프로그램을 위해 매우 빈번하게 사용되는 부분
  • 컴퓨터가 처음 booting될 때 주기억 장치에 적재되어 시스템의 운영이 종료(shut down)될 때까지 계속해서 주기억 장치에 남아 있게 되는 부분
커널을 주기억 장치에 상주시키는 이유 
: 디스크에 둘 경우, 프로그램이 실행될 때마다 디스크와 주기억 장치 사이의 입출력 → 많은 시간을 요구 → 시스템의 성능이 떨어짐
❓ 커널을 주기억 장치에 상주시키는 이유 디스크에 둘 경우, 프로그램이 실행될 때마다 디스크와 주기억 장치 사이의 입출력 → 많은 시간을 요구 → 시스템의 성능이 떨어짐

유틸리티(Utility Program)

  • 운영체제 프로그램 중 자주 사용되지 않는 부분을 디스크에 두고 필요할 때 잠시 주기억 장치로 넣어 실행시킨 후 다시 디스크로 보냄으로써 사용자 프로그램을 위한 주기억 장치의 공간을 확보
  • 사용자 인터페이스의 대부분

커널을 주기억 장치에 상주 시키는 이유 : 빈번히, 빨리 발생돼야 할 프로그램을 디스크에 두었을 경우 실행될 때마다 주기억 장치로 불러들여야 한다. 결국 디스크와 주기억 장치 사이의 입출력에 해당하는 일이며, 많은 시간을 요구하게 되어 시스템의 성능이 떨어진다. 운영체제 전부를 커널로 하지 않고 유틸리티를 떼어낸 이유 : 주기억 장치의 용량

펌웨어(Firmware): 생긴 건 하드웨어고 내부적으로는 프로그램인 형태

마이크로-프로그래밍 롬(Read Only Memory), PLA(Programmable Logic Array) 와 같은 칩의 형태

728x90
반응형