1980년대

- 개인용 컴퓨터 시대

+ 1980년대 이전 : 대형 컴퓨터를 여러 명이 접속해서 이용(UNIX)

+ 1980년대~ : Personal Computer(PC)


- 용어이해

+ CLI(Command Line Interface): 터미널 환경(리눅스,DOS)

+ GUI(Graphical User Interface): GUI 환경


- CLI -> GUI 변경 되었다.

+ 1980년대 초반: CLI

+ 1980년대 중후반 : GUI


1990년대

- 응용프로그램 시대 

+ GUI 환경,개인용 컴퓨터(사용자 증대)

+ 엑셀, 워드 프로세서 등등

+ Window OS 대중화


- 네트워크 기술 발전

+ 월드와이드웹(WWW) 인터넷 대중화


- 오픈 소스 운동 활성화 시작

+ UNIX OS + 응용 프로그램 자체 개발, 소스 오픈

+ LINUX (리눅스) 운영체제, 소스 오픈, 무료


2000년대 이후

- 오픈 소스 활성화

+ LINIX(리눅스) 운영체제

+ Apache(아파치, 웹서버)

+ MySQL (데이터베이스)

+ 안드로이드,딥러닝,데이터사이언스,IoT관련


- 가상 머신, 대용량 병렬 처리등 활성화


정리

- 1950년대 : 운영체제없음(프로그램이 시스템 자원 직접 제어)

- 1960년대 : 배치 처리 시스템

- 1970년대 : 시분할시스템/멀티 태스킹 시스템 -UNIX OS(C언어)

- 1980년대 : GUI,개인용컴퓨터 등장

- 1990년대 : 다양한 응용프로그램, 인터넷 발달, 오픈 소스 운동 활성화

- 2000년대 : 오픈소스 활성화, 가상 머신, 대용량 병렬 처리등


- 운영체제는 응용 프로그램과 시스템 자원을 제어하고, 관리한다.

- 응용 프로그램(Application) 용어 이해

- 배치 처리 시스템, 시분할 시스템, 멀티 태스킹

- CLI,GUI 용어 이해

1950년대

- ENIAC : 번째 컴퓨터

+ 운영체제가 없었음

+ 1개의 응응프로그램을 실행시키도 바쁘다.

+ 응용프로그램이 직접 시스템 자원을 제어하며 실행.


1960년대 초반

- 프로그램 종류도 많아지고, 사용자도 슬슬 많아지기 시작했다.

+ 프로그램이 많아지면 단일 프로그램을 실행시키는 상황은 여러 프로그램을 실행시키기엔 

시간이 너무 오래 걸렸다.


- 배치 처리 시스템(batch processing system) 출현

+ 여러 응용 프로그램을 등록시켜놓으면, 순차적으로 실행하는 시스템

+ 배치 처리 시스템을 기반으로 운영체제가 출현


1960년대 후반

- 새로운 개념이 제안됨

+ 시분할 시스템(Time Sharing System)

+ 멀티 태스팅(Multi Tasking)


멀티 프로그래밍(다중 프로그래밍)

+ 최대한 CPU 많이 활용하도록 하는 시스템(시간 대비 CPU활용도를 높인다.)

프로세서가 항상 수행할 작업을 가지도록 하여 프로세스 이용률을 증진 시키는 방법이다.


- 시분할 시스템, 멀티태스킹이 아이디어로 나왔지 운영체제로 구현되지는 않았다.


- 시분할 시스템, 멀티태스킹 공통점

+ 응용 프로그램이 CPU 사용하는 시간을 잘개 쪼개서, 여러 개의 응용 프로그램을 동시에 실행하는 기법


- 시분할 시스템 

+ 다중 프로그래밍을 논리적으로 확장한 개념이다.

+ 다중 사용자를 지원하고, 컴퓨터 응답 시간을 최소화하는 시스템

ex) 리눅스에 여러 사용자가 로그인하여 사용하면 각자 컴퓨터를 사용하고있는것처럼 지원해준다.

+ 다중 사용자가 사용하려면 응답시간을 줄여야한다(최소화).

+ 배치 프로그램보다 컴퓨터 응답시간을 줄어드는 장점이 있다.


- 멀티태스킹

+ 가능한 CPU 많이 활용하도록 하는 기능(시간대비 CPU 사용율을 높이는것)

+ 단일 CPU에서, 여러 응용프로그램의 병렬 실행을 가능하게 하는 시스템

(시간을 잘게 쪼개서 응용프로그램을 바꿔가면서 실행, 여러응용프로그램이 동시 실행되는것처럼 보임)


- 시분할 시스템,멀티태스킹은 유사한 기술이다.


- 시분할 시스템,멀티태스킹은 스케줄러를 사용한다.


- 배치 처리 시스템의 단점

+ 컴퓨터 응답 시간이 오래 걸릴 있다.(앞단에 실행시간이 많이 필요로 하는 응용 프로그램이 실행될 경우)

+ 실행 시간도 오래걸릴 있다.(CPU 필요 없음에도 응용프로그램이 CPU 점유할 있다.


- 1960년대 후반부 정리

+ 시분할 시스템, 멀티태스킹 기술이 아이디어로 제공 (구현 X)

+ 기술 : CPU 시간을 쪼개서 사용한다.

+ 결과 : 다중 사용자 지원, 응용 프로그램 동시 실행


1970년대

- 제대로된 운영체제가 나왔다.(UNIX)

+ 미국 AT&T 사의 연구소

+ 켐톰슨, 데니스 리치 개발

+ 데니스 리치는 C언어를 개발


- 운영체제 개발에 C언어가 필요했던 이유

+ 1970년대 이전 : Assembly 언어로 소프트웨어 개발

+ CPU(명령어), Memory(주소) 물리적 주소를 직접 지정해서 활용

+ 각각 컴퓨터마다 사양이 다르기에 컴퓨터마다 다시 개발해줘야 하는 단점이 있다.

+ 프로그래밍 복잡도가 높음(활용도는 좋다)


+ 1970년대 C언어가 개발된

+ 컴파일러 : 다시 작성할 필요가 없음

+ 여러 컴퓨터에 같은 C언어를 사용 가능하다.

+ Assembly 언어에 비해 복잡도가 낮다.


- 이러한 이유로 C언어를 기반으로 운영체제를 개발했다.


- UNIX 특징

+ 현대 운영체제의 기본 기술을 모두 포함한 최초의 운영체제

+ 멀티 태스킹, 시분할 시스템, 멀티프로그래밍

+다중 사용자 지원 



운영체제 역할

Operating System

OS

1. 시스템 자원 관리자

2. 사용과 컴퓨터간의 커뮤니케이션 지원

3. 컴퓨터 하드웨어와 프로그램을 제어


1. 시스템 자원(System Resource)관리자

- 컴퓨터 하드웨어 관리 소프트웨어

모니터,네트워크,키보드,마우스,HDD,SSD,etc..

+컴퓨터 하드웨어는 스스로 있는 것이 없다.

ex) CPU,Memory 분배,할당 역할을하지만

스스로 하진 않는다.

+모든 행동은 하드웨어스스로하지 않고 운영체제가 한다.


대표적인 운영체제

- Window OS, Max OS,UNIX

- UNIX OS(현대 기초적인 OS )

+ UNIX 계열 OS 

*UNIX 사용법이나,OS 구조가 유사

+ LINUX (리눅스) OS

*프로그래머,전공자


2. 사용자과 컴퓨터간의 커뮤니케이션 지원

- 사용자와 하드웨어간의 커뮤니케이션(중재)


3. 컴퓨터 하드웨어와 프로그램을 제어

- 응용프로그램(한글, 엑셀, 카카오톡) 하드웨어 관리



운영체제와 응용 프로그램


응용 프로그램이란?

- 프로그램 = 소프트웨어

- 소프트웨어 두가지로 구분

운영체제

응용프로그램(Application)

(엑셀,파워포인트,개인개발프로그램)

특징 : 운영체제위에서 동작


운영체제와 응용 프로그램 간의 관계

- 운영체제는 나머지 응용 프로그램을 관리

응용 프로그램을 실행시킨다.

응용 프로그램간의 권한을 관리한다.

+ 관리자 권한으로 실행

응용 프로그램을 사용하는 사용자도 관리

+ 로그인

응용 프로그램은 누구나 만들 있다.

+ 응용 프로그램엔 문제가 있을 있고

문제를 제어하는건 운영체제가 한다.

(비정상 응용 프로그램 관리)

모든 파일 삭제 막기

+ 권한/사용자 관리

- 운영체제(컴퓨터 전반) 방해하는 행동 제어

- 운영체제 역할이란?

응용 프로그램을 관리한다.

시스템 자원을 관리한다

사용자와 컴퓨터 간의 커뮤니케이션을 지원


운영체제의 목표

- 사용자가 사용하는 응용 프로그램이 효율적으로, 적절하게 동작하도록 지원

- 운영체제는 응용 프로그램이 요청하는 시스템 리소스를 효율적으로 분배하고

지원하는 소프트웨어


운영체제 설치장소는 어디일까?

- 저장매체(SSD,HDD) 저장(설치) 된다.


운영체제는 메모리에 올라가게된다.

- 운영체제도 소프트웨어이다.

- 폰노이만 구조(모든 프로그램은 메모리에 올라가고 CPU 던져지며 실행된다.)



+ Recent posts