컴퓨터 구조를 알고있다는 가정하에 진행한다.
우선 운영체제가 존재하는 이유부터 알아보자. 운영체제란 무엇인가 ? 사전정의는 제쳐두고, 내가 이해한 대로 적어보자면 단순한 하드웨어는 아무런 기능이 없다. 만약 윈도우와 리눅스같은 운영체제를 빼고 현대의 컴퓨터 본체만 달랑 남겨준다면 할 수 있는게 거의 없을 것이다. 내가 생각하는 운영체제의 가장 중요한 목적은 하드웨어와 소프트웨어 입출력장치를를 연결해주는 인터페이스 역할이다.
1) 운영체제 정의
사용자 대신에 컴퓨터 시스템의 각종 자원을 효율적으로 관리하고 운영하게 하여 사용자에게 최대의 편리성을 제공해 주며, 컴퓨터 하드웨어와 사용자간의 인터페이스를 담당하는 시스템 프로그램
2) 운영체제의 목적
2-1) 편리성 제공 => 화면에 GUI를 제공한다던지, 작업을 알아서 최적화 해주는 역할을 한다!
2-2) 효율성 제공(Throughput 향상, Turn-around time 최소화, Availability 향상, Reliability 향상)
3-1) 운영체제의 역할!
1) 조정자 => 운영체제는 시스템을 운영하여 여러 요소(하드웨어, 소프트웨어, 데이터)를 적절하게 사용할 수 있도록 제어.
2) 자원 할당자 or 관리자 => 컴퓨터 시스템이 필요로 하는 자원(프로세스 시간, 메모리 공간, 파일 저장 공간, 장치) 할당.
3) 입출력장치와 사용자 프로그램 제어
-평상시에 우리가 프로그램을 사용하기 위해서 하는 행동은 프로그램 실행 버튼을 누르는 것이지 특정 메모리에 프로그 램을 올리고 특정 CPU에 실행을 요청하는 것이 아니다. 하나의 프로그램을 실행하는 것은 생각보다 매우 복잡하다
하나의 프로그램을 실행과정을 간단히 표현하면
메모리에 프로그램 적재 -> 프로세스를 CPU에서 처리하고 스케줄링 -> IO관리
정도로 요약할 수 있겠는데 이것도 간단히 표현한 것이지 실제로는 매우매우 복잡한 일련의 과정이다. 그런데 우리는 버튼 하나로 프로그램을 실행할 수 있다. 전부 운영체제가 처리해주기 때문이다.
4) 다른 프로그램과의 관계
위의 그림을 보면 위에서부터 프로그래머 -> 어플리케이션 소프트웨어 -> 시스템 소프트웨어 -> OS -> 하드웨어 순서로
나타나있다.
5) 역사
이걸 외울 필요까진 없는데 간단하게 흐름만 보고 싶으면 => 오른쪽 설명만 읽고 넘어가도 충분하다.
5-1) 1세대(1940~) => 컴퓨터가 막 생겨나던 시기이다.
-기계어 사용
-운영체제 없음
5-2) 2세대(1950~) => 컴퓨터가 발전하는 시기이다. 조금씩 효율적인 시스템이 등장한다.
-진공관 사용
-JCL(Job Control Language) 등장
-일괄 처리 시스템 효시
-작업의 전환을 자동적으로 처리
-입출력 제어 시스템
-어셈블리어 사용
5-3)3세대(1965~1980) => 하드웨어의 급격한 발전이 일어나면서 소프트웨어 역시 여유가 생겨서 발전이 빨라졌다!
-트랜지스터, 집적회로, 디스크 사용
-트랜지스터, IC(집적회로), 디스크를 사용하기 시작.
-공유 시스템(shared system), 가상 기억 장치
(virtual memory), 다중 프로그래밍(multi-programming),
다중 처리(multi-processing) 가 개발.
-장치 독립성 : 입출력 장치의 형태적 특성에 관계 없이 입출력 동작
을 요청할 수 있는 능력.
-다중 모드 시스템(multi mode system) 등장 : 일괄 처리, 시분할 처
리, 실시간 처리, 다중 처리 등을 제공.
-소프트웨어 계층 구조 개념과 소프트웨어 공학 (software
engineering)이 등장
-시스템의 처리 능력을 증진시키기 위해 한 컴퓨터 시스템에 여러
개의 프로세스(process)들이 사용.
-시분할 시스템 : 사용자들과 컴퓨터가 대화식으로 운영되어 사용
자의 요구 사항을 가능한 한 빨리 처리하여 터미널로 응답
-실시간 시스템 : 공정 제어용으로 사용되면서 발전하여 상황 변화
에 즉각적인 반응조치가 가능.
5-4) 4세대 (1980~1990) => 네트워크의 개념이 확립되고, 컴퓨터가 대중적이어지는 시기이다!
- 컴퓨터 네트워크와 온라인(on line) 처리 기법 사용, 마이크로
프로세서 등장으로 PC 개발이 촉진.
- 가상 기계(virtual machine) : 여러 개의 운영 체제를 탑재하여 하나의
기계를 여러 개의 기계처럼 보이게 함.
- 데이터 베이스 시스템(data base system) 등장: 정보를 가질 수 있는
사용자 간에 정보를 공유.
- 분산 데이터 처리(distributed data processing) 개념 확립: 데이터가
컴퓨터 시스템 전체에 분산되게 하여 각 데이타 항목은 그 데이터가
가장 자주 쓰이는 곳에 위치하며, 다른 곳의 사용자는 네트워크로 접근.
- 편리한 사용자 시스템(user friendly system)들이 개발.
- PC 운영체제인 윈도우(window)가 개발
- 워크스테이션(workstation), 다중 프로세서(multiprocessor)가 일반화
5-5) 5세대 (1990~현재) => 인공지능 관련과 컴퓨터의 대중화로, 많은 분야에서 활용
- ULSI, 조셉슨 소자, 칼륨-비소 소자, 광 소자를 사용.
- 분산계산 시스템이 실용화.
- 지식 기반(knowledge base) 시스템이 등장.
- 인공지능(artificial intelligence)이 실현.
- 논리, 추론 등 유추기능이 강화.
- 자연어 인터페이스를 사용하여 인간과 기계의 대화
(human computer interface)기능이 실현.
- 인문. 사회. 자연과학 특히, 산업공학, 환경공학, 생물공학,
전기전자공학 등 분야와 정보기술(IT: Information
Technology)의 융합
6.운영체제의 기능 -> 대충 알아만 보고 넘어가자. 이러이러한 역할이 있구나 정도
6-1 자원관리자 관점 => 자원을 할당, 회수하고 추적하고 기억하고 정책을 수립한다!
1) 프로세스 관리 => 어떤 프로세스가 CPU를 사용할 것인지 결정하고 회수한다.
2) 기억장치 관리 => 주기억장치를 관리하기 위해서 장치 + 파일 관리자와 협력해서 기억장치의 할당, 해제를 관리
3) 장치 관리 기능 => 제어장치와 입출력 장치의 상태를 추적, 기억한다!
4) 정보관리기능 => 파일 시스템, 어떤 작업에게 정보자원을 사용하도록 할 것인지를 결정한다.
6-2 프로세스 관점 => 운영체제를 프로세스를 변화시키는 프로그램으로 본다!
6-3 계층 구조 관점
'컴퓨터과학 > 운영체제' 카테고리의 다른 글
[운영체제] Ch.6 가상 기억 장치 (0) | 2023.05.14 |
---|