티스토리 뷰
Goal
- 컴퓨터의 역사
- 운영체제의 등장과 발전
1. 컴퓨터의 역사
컴퓨터는 1940년대, 2차 세계 대전시기에 만들어졌다.
당시에는 라인 프린터방식으로 ,종이를 뚫어서 데이터 인식하고, 망치로 두드려서 데이터를 입력했다.
컴퓨터의 가장 핵심부분은 프로세서와 메모리가 존재했지만 운영체제는 없었다 (No Operating System.)
컴퓨터를 사용하는 것은 너무나도 복잡했기 때문에 오퍼레이터라는 컴퓨터를 전문적으로 사용하는 직업이 존재했다.
그당시 개발자의 역할은, 종이에 프로그램을 짜서 전산실에 옮겨주고 전산실에서는 프로그램을 입력시킴 (종이에 구멍을 뚫어서) 이었다. ( Card reader > memory > processing > line printer = 종이 데이터 -> 컴파일러 -> 기계어 -> 컴퓨터가 처리)
2. 운영체제의 등장과 발전
2- 1 Batch processing system 배치 (일괄처리 시스템, 최초의 운영체제)
배치 프로그램이 메모리에 항상 상주하여, 오퍼레이터가 수행하던 일괄작업을 처리해주었다(Resident monitor).
하드디스크의 등장.
2-2 Multiprogramming system (다중 프로그래밍)
다중프로그래밍
- 메인메모리에 여러 프로그램을 돌려 cpu의 사용성을 높이는 프로그래밍.
다중프로그래밍의 등장 배경
- 배치프로그래밍에서는 Memory에 운영체제 및 유저 프로그램이 하나만 놓여 있었다. 따라서 상대적으로 빠르게 동작하는 CPU는 IO가 업무처리를 할 때 아무것도 못하고 기다려야하는 문제점이 생겼다
예를들어, 개발자가 코딩을 하고 출력할 때, 연산작업은 CPU가 하지만 연산의 결과 출력은 하드웨어인 IO가 수행한다. 하나의 프로그램은 시간의 동작에따라 수행되기 때문에 연산작업시에는 CPU가 동작하고 출력시에는 IO가 동작한다. 이때 IO의 수행속도가 느리기 때문에 CPU가 idle(놀고있는 상태)하는 문제점이 발생했다.
이러한 문제는 IO작업이 카드리더에서 읽어들어야 했기 때문에 오려걸리기 때문이었고 비싼 컴퓨터를 사서, CPU를 놀게하면 비효율적이기 때문에 메모리에 여러 개의 프로그램을 돌리자는 생각을하게 됐고 다중프로그래밍이 등장하게 되었다.
다중프로그래밍 동작 방식
메모리에 다양한 프로그램을 놓고, IO가 일을 처리할 때 CPU는 다른 프로그램을 처리한다. IO가 일어나는 상황에서도 계속 cpu가 작업을 할 수 있다.
이때 메모리의 다양한 프로그램의 처리 순서를 정하는 등 효율적 처리를 위해 cpu스케쥴링 개념이 생겨났다. 더 좋은 성능으로 CPU를 사용하기 위한 방법을 고민하게된 것이다.
60 ~ 70년대
모니터와 키보드의 등장
인터렉티브 (명령을 통한 컴퓨터와 나의 대화)
2-3 Time -Shariing system 시공유 시스템 (70년대 쯤 등장, Unix)
컴퓨터의 사용자가 늘어나게 되었고
(user 1 user 2 user 3 user 4 user 5)
CPU가 작은 단위의 시간안에 user에게 사용량을 할당해주어야 했고 그것을 시공유 시스템이라고 한다.
시공유 시스템에서는 유저의 작업이 거의 동시에 실행되기 때문에 사용자는 자기혼자 CPU를 사용하는 것처럼 느낀다.
- 강제 절환, interactive system(대화형)
- 가상 메모리, 프로세스간 통신, 동기화
동기화
유저의 작업이 거의 동시에 실행되기 때문에, 어떤 유저가 우선시 되어 실행되어야 하는지 정해주어야 하는데 그것을 동기라고한다.
가상메모리의 기법(Virtual memory)의 등장
유저가 많아지면 메모리에 유저가 많이 들어가야 되고, 그럼 메모리가 부족해진다.
따라서 하드디스크의 일부를 메인메모리처럼 사용하는 기법이 나오게 되었다 (CPU가 보기에 메인메모리가 크게 보임)
배치 - 다중 - 시분할기술의 발전 처럼 운영체제는 발전하면서 컴퓨터의 성능을 향상시켜 왔다.
지금 우리가 사용하는 대부분의 운영체제는 TSS(시공유 시스템)이다. (단일 CPU에서의 최신의 기술)
3. OS 기술 천이
Supercomputer -> Server -> Workstation -> PC - > Handheld -> Embeded
현대의 컴퓨터 환경
네트워크에 PC, Workstation, 그리고 다양한 서버가 합됨
'컴퓨터 공학(CS) > 운영체제' 카테고리의 다른 글
운영체제 역사 - KOCW 양희재 교수님 (0) | 2020.08.03 |
---|---|
운영체제 서론 - KOCW 양희재 교수님 (0) | 2020.07.30 |
운영체제 흐름도 (0) | 2020.02.02 |
운영체제 논리적 구조 정리 (0) | 2020.02.02 |
컴파일러 vs 인터프리터 비교 (파이썬 vs 자바) (0) | 2020.02.02 |
- 20201204
- 20200421
- 20200403
- 20200428
- 20200319
- 20200406
- 20200622
- 20200317
- 20200427
- 20200423
- 20200413
- 20200503
- 20200420
- chapter8
- 20200624
- likelion
- 생활코딩리눅스
- 20200417
- 20200804
- 20200424
- 20200415
- 20200510
- 20200429
- 20200504
- 20200512
- 20200330
- 20200425
- 백준
- chapter7
- 20200502
- Total
- Today
- Yesterday