til

2. 운영체제 역사

 

역사

 

- 컴퓨터 역사 : 1940' 말 (2차세계 대전 이후)

 

1) 처음에는 컴퓨터에 운영체제가 없었음

더보기
최초의 컴퓨터 (참조 : https://choheeis.github.io/newblog//articles/2020-08/OSHistory)

Operator라는 직업군이 따로 있었음

카드 리더(소스, 컴파일러) -> 메모리 -> 프린터에 결과 찍힘

초기 컴퓨터의 입력 (천공카드) (참조 : https://choheeis.github.io/newblog//articles/2020-08/OSHistory)

 

2) Batch Processing (일괄처리) ; 최초의 OS

더보기

오퍼레이터가 하던 일련을 일을 하는 과정의 프로그램을 만들고, 그걸 메모리에 넣자!

-> resident monitor

 

참고) resident ; 상주하는

 

3) Multiprogramming system (다중 프로그래밍)

- CPU scheduling, memory 관리, 보호

더보기

하드웨어 기술의 변화. 1960' 당시

 

기존의 문제점 : 빠른 CPU, 느린 I/O

https://choheeis.github.io/newblog//articles/2020-08/OSHistory

참고) 프로그램이 cpu와 더불어 I/O 모두 사용하게 됨. 이때 cpu 동작과 I/O 동작이 교대로 일어남

이때 I/O 작업 마칠 때까지 cpu는 아무것도 안하고 놀게 된다 (CPU idle 현상) -> 컴퓨터는 비싼 자원인데 놀게 두면 안된다! -> cpu가 놀지 않고 미리 다음 프로그램 실행하게 하도록 함 

-> 메모리에 여러프로그램 올라감 -> Multiprogramming system (다중 프로그래밍)

 

- CPU scheduling : 어떤 식으로 스캐쥴링해야 속도/성능이 더 좋아질 것인가

- 메모리 관리, 보호 : 메모리 관리를 어떻게 해야 다른 영역에 침범하지 않고 또 새로운 프로그램을 넣을 수 있는가? 메모리의 어느 위치에 넣어야할 것인가?

 

4) TSS (Time-sharing system ; 시공유 시스템)

- 강제 절환, interactive system (대화형)

- 가상메모리, 프로세스간 통신, 동기화

더보기
https://choheeis.github.io/newblog//articles/2020-08/OSHistory
https://choheeis.github.io/newblog//articles/2020-08/OSHistory

모니터, 키보드의 출현 -> 컴퓨터와 나의 대화가 가능해짐 (interactive 해짐)

옛날 컴퓨터는 너무 비싸서 여러명이 함께 썻음 -> 하나의 컴퓨터에 여러가지 단말기 연결 (모니터,키보드 등 i/o장치 = Terminal) -> 이러려면 기존의 멀티프로그래밍 방식으로는 불가능함

 

 

- 강제절환 : 타임라인 만들어서 짧은 시간을 나누어, 사용자들의 작업을 스위칭해주며 실행 -> 여러사람의 컴퓨터 동시사용이 가능해짐

https://choheeis.github.io/newblog//articles/2020-08/OSHistory

- 동기화 : 여러명의 프로그램이 동시에 있다보니까, 그 실행 순서를 정해야함

- 가상메모리 : 하드디스크의 일부를 메인메모리인 양 사용할 수 있도록.

 

 

참고) Unix, Linux 는 TSS 기반. 현재 대부분 OS의 기본 원리.

 

 

 


 

OS 기술 천이

 

  • 컴퓨터 규모별 분류
더보기

- 옛날 : Supercomputer > Mainframe (한 컴퓨터에 단말기 여러개) > Mini (단말기 수십개) > Micro (한명만 씀)

- 현재 : 네트워크 환경

           Supercompueter > Server > Workstation > PC > Handheld (핸드폰 태블릿 등...) > Embedded (세탁기, 전기밥솥 등...)

 

  • 고성능 컴퓨터의 OS 기술이 Handheld/ Embedded 까지
더보기

대형 기종을 위해 만들어진 시스템들이, 점차 시간이 지나면서 작은 기종에도 순서대로 적용되기 시작.

 

- Batch processing

- Multiprogramming

- Timesharing

  • 고등 컴퓨터 구조 (Advanced Computer Architectures)

 

 

참고 링크

1. 운영체제 서론

 

운영체제란?  : Operating System

 

운영체제가 없는 컴퓨터는 '야생마'와 같다.

 

참고) 프로그램의 실행 과정

더보기

어떤 프로그램을 실행하기 전, 어떤 명령들(instruction)이 미리 메모리(휘발성 메모리)에 적재됨

 

프로그램 -> (메모리) <-> (프로세스)

 

프로그램 실행과정

프로그램(명령어들의 집합) -> 메모리에 올림 -> 프로세스로 올림

 

 

프로그램을 어떻게 메모리에 올릴까?

프로세스는 하나 뿐인데 어떻게 프로그램이 동시에 실행될 수 있을까?

-> 운영체제 없이는 불가능

 

운영체제란 무엇인가? : 컴퓨터 하드웨어를 관리하는 시스템 (Control program for computer)

컴퓨터에 있는 하드웨어를 잘 관리하여 성능을 높이고 사용자에게 편의성을 제공

 

 

부팅 (Booting)

 

참고) 메인메모리 

더보기

메인메모리 - RAM / ROM 메모리

 

RAM이 대부분, ROM은 적은 부분을 차지

RAM은 휘발성 메모리, ROM은 비휘발성 메모리

RAM은 전원이 꺼지면 메모리가 날아간다. ROM은 컴퓨터 부팅 과정에만 사용된다.

 

참고) 컴퓨터 구조

더보기

프로세서 / 메모리(ROM, RAM) / 디스크

POST (Power-On Self-Test) : 전기를 키면, 컴퓨터의 환경수준이 다 제대로 되어있는가 점거하는 것

부트로더 (Boot loader) : OS를 메인메모리로 로드함

 

부팅 과정

 

1. 프로세스에서 ROM부분의 코드를 제일 먼저 읽어와서 실행한다.

2. 이때 POST를 실행하여 점검한 후, 그 다음 부트로더를 실행하게 됨

3. OS가 메인메모리로 올라간다. (전원이 꺼지기 전까지 메인메모리에 유지됨)

 

 

운영체제의 위치

 

- OS의 구조

 

http://cis2.oc.ctc.edu/oc_apps/Westlund/xbook/xbook.php?unit=04&proc=page&numb=1

OS = Kernel + Shell

 

HW : 하드웨어 자원

Kernel : 실제로 하드웨어(메모리, 디스크)를 관리하는 프로그램

Shell (command interpreter) : OS의 바깥쪽에 위치. 사용자로부터 명령을 받아들여, 이를 해석한 뒤에 해당되는 명령을 실행

Application : OS 위에서 실행되는 응용프로그램. (OS가 관리해주는 대로 하드웨어 자원을 사용)

 

 

OS : 프로세스(cpu) 관리, 메모리(메인) 관리, I/O 관리, 파일(디스크) 관리, 네트워크 관리, 보안 관리

 자원 할당자, 자원 관리자

 

더보기

OS 가 하는 일 vs 정부가 하는 일

부서별 업무, 자원관리, 자원할당 등등...

친구와 함께 운영체제에 대한 강의를 매일 1강씩 듣고, 블로그에 정리하기로 내기를 했습니다 ㅎㅎ

패널티로 벌금 내기 싫으니까 매일 열심히 하게 되겠죠?

무료대학강의 플랫폼인 KOCW에서 유명한 강의 중 하나입니다. 매일 매일 성실히 공부해서 정리하겠습니다~

그럼 시작합니다.

 


운영체제 강의

- 경성대 컴퓨터공학부 / 2학년 2학기 / 학부기초 / 3학점 (강의 3, 실습 0)

- 양희재 교수

- 교재 : Silberschatz et al, Operating System Concepts with java, 8th ed, 2011

 

- 수업목표

1) Windows, Unix/Linux, MacOS X, IOS, ...

2) 운영체제의 정의, 역할, 역사

3) 프로세스 관리, 주기억장치 관리, 파일 관리, ...

4) 운영체제 이해부터 설계까지

 


15주간 수업 계획

 

- 1~2주 : 개요, 역사, 현대운영체제

- 3~7주 : 프로세스 관리 (스케쥴링, 동기화)

- 8~11주 : 메모리 관리 (페이징, 가상메모리)

- 12~15주 : 파일 관리 (파일할당, 디스크스케쥴링)

 

1, 2 Introduction : Operating System? (오퍼레이팅 시스템이란)

3 Process Management (프로세스 관리)

4 Process Synchronization (프로세스 동기화)

5 Classical Problems (전통적인 문제)

6, 7 Deadlock (결착상태 -> 어떻게 해결할 것인가?) / 중간고사

8 Main Memory Management (주기억장치 관리)

9 Paging & Segmentation

10 Virtual Memory (가상메모리 -> 어떻게 만들 것인가)

11 File Allocation (파일 할당)

12 Disk Scheduling (디스크 스캐쥴링)

13~15 Summary & Final Exam (이 과목에 대한 전체적인 정리, 복습)

+ Recent posts