운영체제의 시작과 발전
· 운영체제(Operating System)
- 사용자와 하드웨어 사이에서 중계 역할을 하면서 컴퓨터의 자원을 독점적으로(exclusive) 관리하는 특별한 소프트웨어
· 자원(Resources)
- 하드웨어 자원, 소프트웨어 자원, 데이터 자원
· 고정 프로그램 컴퓨터
- 하나의 프로그램이 하나의 컴퓨터인 하드와이어드(hard-wired) 프로그래밍 방식의 컴퓨터
· 내장 프로그램 컴퓨터(하드웨어 / 소프트웨어 분리)
- 폰 노이만이 제안한 방식으로 CPU와 메모리를 구분하여 프로그램의 명령들을 메모리에 적재하고 CPU가 명령을 실행하는 방식의 컴퓨터
· 로더 프로그램(loader) - 운영체제의 싹(기존에는 펀치카드로 수작업)
- 저장 장치에서 메모리로 프로그램을 적재하는 코드
· GM OS(Monitor=GM OS) – 원시 운영체제(제대로 된 로더 프로그램)
- 로더 프로그램(GM OS)이 사용자 프로그램을 메모리에 적재시키고 CPU가 사용자 프로그램을 실행
· GM-NAA IO – 최초의 운영체제 ~ 일종의 배치 운영체제
- 여러 개발자들이 작성하여 쌓아놓은 작업들을 자동으로 메모리에 적재
+ 프로그램 개발자와 관리자가 분리
· 배치 시스템(Batch System) – 개발자와 관리자가 분리
1) 테이프 장치(보조 기억장치)에 들어 있는 배치 작업(job, 프로그램)을 자동으로 메모리에 적재하고 실행
2) 한꺼번에 실행, 한 번에 한 개씩 순차적으로 실행, 비대화식, 프린터에 결과 출력, 작업을 요청한 한참 뒤 결과 받음 > I/O 작업 동안 CPU는 노는 상태(idle)가 오래 지속
· 다중프로그래밍 시스템(Multiprogramming System) - 배치 단점 극복(p.42)
1) 여러 프로그램을 메모리에 올려놓고 동시에 실행시키는 기법
2) CPU가 한 프로그램을 실행하다 I/O가 발생하면 입출력이 완료될 때까지 CPU가 메모리에 적재된 다른 프로그램을 실행
3) 다중프로그래밍 도입으로 인한 이슈: 큰 메모리, 프로그램의 메모리 할당 및 관리, 메모리 보호, CPU 스케줄링, 컨텍스트 스위칭, 인터럽트, 동기화, 교착상태
· 시분할 다중프로그래밍 시스템(Time sharing Multiprogramming System)
- 타임 슬라이스를 정해 해당 주기만큼 메모리에 적재된 모든 프로그램에게 돌아가면서 CPU를 할당하고 실행시키는 시스템
스케줄링 알고리즘: 라운드 로빈(RR) / 주기↓: SJF/SRTF / 주기↑: FCFS
한 번에 처리할 작업량이 적고 사용자가 컴퓨터와 대화식으로 작업을 처리할 경우 적합
· 대화식 운영체제
- 사용자에게 빠른 응답을 제공하고 사용자가 즉각적인 대응을 할 수 있는 운영체제 ~ 이를 위해 모뎀과 전화선을 이용한 원격 시스템 제안
· 개인용 운영체제(ex: MS-DOS)
- 마이크로프로세서의 상용화로 미니컴퓨터 등장하여 PC(Personal Computer) 관심 증대
· 모바일 운영체제
- 절전이 가장 중요(저전력 why? 배터리 성능)
'Development' 카테고리의 다른 글
[OS] 프로세스와 프로세스 관리 (1) | 2023.10.18 |
---|---|
[OS] 컴퓨터 시스템과 운영체제 (0) | 2023.10.17 |
[Development] 메소드 오버로딩과 메소드 오버라이딩 (1) | 2023.10.05 |
[Development] 클래스, 객체, 인스턴스 (0) | 2023.09.26 |
[Design Pattern] RPG 패턴 (0) | 2023.09.22 |