1.1
- 운영체제란 : 컴퓨터의 여러 응용 프로그램을 설치되게 해 주고, 여러 가지 장치를 효율적으로 작동하도록 하며, 사용자가 컴퓨터를 손쉽게 이용할 수 있도록 해주는 프로그램의 집단. 컴퓨터의 사용자와 하드웨어 사이에서 가교 역할을 하는 프로그램. 사용자 인터페이스와 자원관리를 위한 프로그램의 집단
- 시스템 소프트웨어 : 운영체제 + 시스템 프로그램 집단
- 응용 소프트웨어 : 응용 프로그램 집단
- 하드웨어 → 운영체제 → 응용 프로그램 → 사용자
1.2 운영체제의 역사
- 수동식 계산기
- 자동계산기
- 1세대 운영체제 : 진공관 컴퓨터, ABC, ENIAC, 폰 노이만의 2진 부호 체계 채택, EDSAC, UNIVAC-I, IBM701(일괄처리 시스템 등장), IBM 305 등
- 일괄처리란 다수 개의 프로그램을 읽어 저장해 높되, 한 번에 한 개씩 프로그램을 실행시켜 주는 방식, 진공카드 위에 만들어지고 카드 판독기가 읽어 저장. Batch는 작업이 차례대로 한 개씩 처리된다는 뜻으로 한 개의 작업이 시작되면 그 일이 완전히 끝날 때까지 다른 작업은 기다려야 한다는 뜻, 작업이 끝날 때까지 사용자의 중간 개입이 허용되지 않는다.
- 2세대 운영체제(1960년대 전반기) : 가장 큰 특징은 트랜지스터 컴퓨터로, 사이즈와 값이 작고 전력효율이 높아졌다는 것이다.사용자에게도 보다 나은 서비스를 제공하기 위한 많은 방식들이 개발되었는데 대표적인 것이 다중 프로그래밍 시스템과 다중처리 시스템, 시분할 시스템, 대화식 시스템 등이다.
- 다중 프로그래밍 시스템(Multi-programming) : 다수 개의 작업이 같이 주기억 장치에 있도록 한 방식 → CPU개수와 무관
- 다중처리 시스템(Mulitprocessing) : 여러 개의 처리장치를 장착하여 동시에 여러 작업을 병렬로 실행하여 처리 속도를 최대한 높이는 방식 → CPU가 2개 이상, 메모리 위에 있어야 하며 mulit programming이 갖추어져야 한다.
- 시분할 시스템 : CPU가 처리해 줄 수 있는 시간을 작업 수에 맞춰 분할하여 각자에게 일정량만큼 씩 분배하여 번갈아 처리 → CPU1개, 다중 프로그래밍 시스템이 먼저 필요.
- 대화식 시스템 : 시스템과 사용자가 모니터와 입력 장치를 통해 마치 대화하듯이 일을 처리해 나가는 방식 →시분할 필요
- 3세대 운영체제(1960년대 후반기 - 1970년대) : 다중모드 시분할 시스템(일괄처리와 시분할 그리고 실시간 작업 모두 지원) 소개, 근거리 통신망(LAN), 소프트웨어 공학과 컴퓨터 보안 소개, UNIX 운영체제 출현
- 4세대 운영체제(1970년대 후반기 - 현재) : 파이크로프로세서 개발 → PC보급
1.3 운영체제의 기능
- 쉘 : 사용자 인터페이스로 사용자나 응용 프로그램이 운영체제와의 의사소통인 정보 교환과 운영체제로의 요청 창구
- 장치들의 관리 : 시스템에 있는 주변 장치(키보드, 마우스, 하드디스크 등) 제어
- 파일 관리 : 파일을 만들고 지우고 수정하고 이름을 부여, 디렉터리를 관리
- 메모리 관리 : 주기억 장치의 관리, 일부분을 할당, 프로그램들의 경계를 설정
- 처리기 관리 : CPU의 처리 능력을 각 작업에 효과적으로 배분하도록 한다.
- 커널 : 운영체제의 각종 기능들 중 사용자와 실행 프로그램을 위해 매우 빈번하게 사용되는 부분, 컴퓨터가 처음 부팅될 때 주기억 장치에 적재되어 시스템의 운영이 종료될 때까지 계속해서 주기억 장치에 남아 있게 되는 부분
- 운영체제를 전부 커널로 한다면 사용자 프로그램들의 공간이 줄어 실행되지 못할 수 있기에 운영체제 프로그램 중 자주 사용되지 않는 부분은 디스크에 두고 필요할 때 주기억 장치로 넣어 실행
- 유틸리티 : 사용자 인터페이스의 대부분이 유틸리티
- 펌웨어 : 커널 중에서도 좀 더 빠른 실행이 요구되거나 높은 수준의 보호가 필요한 프로그램으로 마이크로-프로그래밍을 하여 롬과 PLA와 같은 칩의 형태로 만든 것
- 프로그램들이 실행될 때 적용받게 되는 모드가 있는데 유저 모드와 커널 모드가 있다. 커널 모드는 운영체제가 실행되는 모드로 모든 명령이 수행 가능하고 유저 모드는 사용자 프로그램과 응용 프로그램 등이 실행된다. 유저 모드로 실행 중 커널 모드에서 해야할 일이 생기면 프로그램은 시스템 호출을 하고, 이후 그 일을 해 줄 운영체제 프로그램이 커널 모드에서 실행된 다음 다시 사용자 프로그램으로 복귀되도록 한다.