역사
컴퓨터의 역사
- 1940년대 말~
- 하드웨어 발전하면서 동시에 운영체제 기술도 발전
- 카드 리더기 -> 메모리 -> 프로세싱 -> 라인 프린터
- Batch Processing system(일괄처리): 최초의 OS
- 메모리안에 컴파일,링크,로더 => 일련의 일을 하도록 넣어주게 함
- 메모리에 resident monitor가 있으면 꾸러미의 일 즉,. 일련의 일을 하는것은 Batch
- 메모리 안에 OS, User program(컴파일러 또는 데이터 또는 링크 등)가 들어있음
- 처음에는 CPU(프로세스/계산)을 사용 그 다음 I/O 실행하면 CPU가 할 일이 없게 되고 idle(아무 일을 안하는 상태)이 됨
- Multiprogramming system(다중프로그래밍) : 하드디스크가 등장 => 메모리의 크기도 커지며 동시에 OS 발전
- 컴퓨터는 비싼 자원 (1960년대)
- idle 상태를 방지, 여러 개의 프로그램을 넣어둠으로 여러 job을 할 수 있게 만듬
- CPU 이용률이 높아짐.
- CPU 스케쥴링을 고민하게 됨 (성능이 가장 좋아지게 하기 위해서 어떤 순서로 해야하는지)
- 메모리 관리, 보호 필요 (유저 프로그램을 어떻게 배치해야 하는지, 프로그램이 종료된 후, 다음 어느 자리에 넣어야하는지/ 다른 프로그램의 영역을 침범하는 것도 방지해야 함)
- Time-sharing system(시공유 시스템)
- 키보드, 모니터의 등장으로 인터넷 기능(상호 대화형 컴퓨터)이 가능하게 됨
- 한 대의 컴퓨터에 여러 단말기로 연결 => 한 번에 여러 사람이 동시에 사용할 수 있는지 고민
- 짧은 시간 마다 유저 스위칭을 하여 여러 사람이 사용할 수 있게 함 -> 매우 짧은 시간에 교차가 되기 때문에 혼자 사용하는 것 같은 방식으로 가능
- 강제 절환(스위칭), interactive system(대화형 시스템)
- 가상 메모리, 프로세스간 통신, 동기화(여러 개의 프로그래밍이 거의 동시에 실행되며 순서를 결정하게 함)
- 부족한 메모리를 채워줘야 하는 필요성 등장
-> 하드 디스크의 일부를 메인 메모리같이 사용 가능한 기술 등장
-> 가상 메모리 (virtual memory)
- 대표적인 운영체제 시스템인 Unix 1960년대 말 등장
- 리눅스가 시공유 시스템에 기반되어 있음
- 맥킨토시
OS 기술 천이
- 컴퓨터 규모별 분류
- 슈퍼컴퓨터 -> 메인프레임(은행, 증권회사) -> 미니컴퓨터(단말기 수십대 정도)-> 마이크로 컴퓨터
- 1980년대 말까지 위와 같이 분류함
- 슈퍼컴퓨터 -> 서버 -> 워크스테이션 -> PC -> handheld -> 임베디드
- 인터넷 시대에 네트워크 환경 아래 PC가 있으며 PC보다 강한 것이 워크스테이션
- 수강신청과 같은 대규모의 데이터베이스 서버가 필요함 -> 이를 위해 서버를 둠, 여러 서버가 있음
- handheld : 손에 들고 다니는 것, 노트북, 핸드폰 등
- 임베디드: 내장되어 있는 것으로 ex. 전기밥솥, 세탁기 등 컴퓨터가 내장되어 있음
- 고성능 컴퓨터의 OS 기술이 handheld/embedded 까지
Time Sharing System이 가장 중요
- 고등 컴퓨터 구조 (Advanced Computer Architectures)
- 고등 운영체제의 등장