데이터과학 삼학년

운영체제 개요 및 역사 본문

Computer Science/Operating System

운영체제 개요 및 역사

Dan-k 2020. 2. 28. 18:51
반응형

운영체제 오리엔테이션

- 운영체제는 난이도가 높은 과목

- 컴퓨팅 사고가 고도로 발달한 분들이 모여서 만든 것

- 학습전략 : 문과 -> 외워라, 모두 -> 핵심이론, 용어에 집중, 감을 잡는데 중점/ 80%만 이해해도 성공

- 처음 배우는 분들도 따라올 수 있도록 구성

- 용어는 처음 배우시는 분들을 위해 가볍게 짚고 넘어감

- 반복하며 조금씩 깊게 설명

- 운영체제는 컴퓨터 사이언스 전공 필수 과목

- 소프트웨어 + 하드웨어

- 자료구조, 알고리즘의 필요성을 깨달을 수 있음

 

운영체제 큰그림

- Operating System : OS

- 운영체제의 역할1 : 시스템 자원(System Resource) = 컴퓨터 하드웨어를 관리한다!

   > CPU(중앙처리장치), Memory(DRAM,RAM)

   > I/O Devices

   > 저장매체

- 컴퓨터 하드웨어는 스스로 할 수 있는 것이 없음

  > 각 프로그램이 얼마나 CPU를 사용할지 결정 X

  > 각 프로그램이 어느 주소에 저장되어야하는지 어느 정도의 메모리 공간을 확보해줘야하는지 결정 X

   > 각 프로그램이 어디에 어떤 파일명으로 저장할지 결정 X

>> OS 없이는 컴퓨터는 동작하지 않음

- 대표적인 운영체제

   > Window, Mac, Unix(현대 운영체제의 기술을 최초로 구현한 OS)

   > UNIX 계열 OS : LINUX --> 프로그래머, 전공자라면 반드시 알아야 함(서버환경)

- 쉬어가기 : OS 만들기가 쉽지 않음(Tmax의 사례...)

- 운영체제의 역할2 : 사용자와 컴퓨터간의 커뮤니케이션 지원

- 운영체제의 역할3 : 컴퓨터 하드웨어와 프로그램을 제어



운영체제 큰 그림과 응용 프로그램

- 응용 프로그램(Application)이란

   > 프로그램=소프트웨어

   > 소프트웨어 = 운영체제, 응용프로그램(엑셀, 파포 등) 

   > Application(일반pc의 프로그램) = App(스마트폰에서 응용 프로그램)

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

   > 응용 프로그램 실행 및 프로그램간 권한을 관리

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

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

   > 응용 프로그램은 누구나 만들 수 있음

   : 응용 프로그램에 무한 반복문을 넣었을 때?

   : 응용 프로그램이 잘 못 작성되서 프로그램이 다운

   : 모든 파일 삭제 막기(권한/사용자 관리)

>> 응용 프로그램이 비정상적으로 동작될 때 이를 막고 관리하는 것이 운영체제의 역할

- 운영체제의 목표 : 사용자가 사용하는 응용 프로그램이 효율적으로 적절하게 동작하도록 지원

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

- 쉬어가기 : 운영체제는 어디에 있을까?? --> 저장매체(SSD/HDD)에 설치(저장)됨

- 컴퓨터 구조 : 컴퓨터를 키면? --> 운영체제는 Memory에 올라가게 됨

- 참고 : 폰노이만 구조

- 정리

   >  운영체제의 역할 : 시스템 자원, 응용 프로그램 관리, 효율적 분배

   > 응용 프로그램 : 소프트 웨어

 

운영체제 역사(1950~1960년대 초반)

 - 1950년대

   > ENIAC(애니악) : 첫 번째 컴퓨터 --> 운영체제가 없었음

   : 하나의 응용 프로그램을 실행시키기도 바빴음

   : 시스템 자원은 응용 프로그램이 직접 제어했음

 

- 직접 진공관을 빼고 낌

 

- 1960년대 초기

   > 프로그램 종류도 많아지고, 사용자도 많아지기 시작

   ex) 철수 12시간, 영희 1분 실행 소요될 때, 각 프로그램의 실행순서가 정해져있음. 만약 철수가 먼저 실행되면 영희는 12시간 후에나 1분짜리 프로그램을 실행할 수 있음, 자동적으로 실행 순서를 처리할 수 없기 때문에 영희는 철수것 다 완료될때까지 기다렸다가 직접 돌려야 함

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

   : 여러 응용 프로그램을 등록시켜 놓으면 순차적으로 실행

 

- 1950년대 : 운영체제 존재하지 않아 응용 프로그램이 직접 SR 제어하며 실행

- 1960년대 초반 : 배치처리 시스템 출현, 운영체제 출현



운영체제 역사(1960년대 후반~시분할 시스템)

- 새로운 개념이 제안됨(시분할 시스템(Time Sharing System), 멀티태스킹(Multi Tasking) but 운영체제로 구현되지는 않음

- 시분할 시스템과 멀티 태스킹

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

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

- 컴퓨터 응답시간

Keyboard ‘k’ 를 출력하라(app2) 누른후 응답까지의 시간이 너무 오래 걸림 > 배치 시스템

- 시분할 시스템은 컴퓨터 응답시간을 줄일 수 있음 : 다중 사용자 지원 가능

- 시분할 시스템 : 다중 사용자를 지원하기 위해 컴퓨터 응답시간을 최소화하는 방법

- 멀티 태스킹 : 가능한 CPU를 많이 활용하도록 하는 기능(시간대비 CPU 활용률을 높이자)

 

운영체제 역사(1960년대 후반~멀티태스킹)

- 멀티 태스킹 : 단일 CPU에서, 여러 응용 프로그램의 병렬 실행을 가능케 하는 시스템

- 보통은 시분할 시스템 = 멀티 태스킹

- 아주 짧은 단위로 여러프로그램을 잘게 쪼개서 실행을 시키면 사람이 느끼기에 동시에 실행되는 것처럼 느껴짐(ex. 플립북)

- 멀티 프로그래밍 : 최대한 CPU를 많이 활용하도록 하는 시스템, CPU 활용도를 높이자

- 운영체제의 스케쥴러와 관련이 있는 부분

 

- 배치 처리 시스템의 단점

   > 컴퓨터 응답 시간(response time)이 오래 걸릴 수 있음

   > 실행시간도 오래 걸릴 수 있음(CPU가 필요없음에도 응용프로그램이 CPU를 점유할 수 있기 때문)

- 시분할 시스템과 멀티태스킹

   > 핵심 기술 : 시간을 잘게 쪼개서 여러 응용 프로그램을 실행

   > 컴퓨터 응답시간을 줄일 수 있음(시분할 시스템, 다중 사용자를 지원)

   > 전체 응용프로그램의 실행시간도 줄일 수 있음(멀티 프로그래밍)

   > 결과적으로, 사용자가 느낄 때, 여러 응용 프로그램이 동시에 실행 되는 것처럼 보임(멀티 태스킹)

 

[정리]

- 1950년대

   > 운영체제가 없었음

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

- 1960년대 초반

배치 처리 시스템 출현, 운영체제가 출현

- 1960년대 후반부 정리

   > 시분할 시스템 / 멀티 태스킹 / 멀티 프로그래밍

   > 기술: CPU 시간을 잘게 쪼개기

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

 

운영체제 역사 (1970년대)

- 제대로 된 운영체제가 나옴

- UNIX OS

    • 시분할 시스템, 멀티 태스킹, 다중 사용자 지원

    • 데니스 리치 (C언어 개발) - UNIX도 C로 구현

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

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

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

    • CPU 명령어, Memory 주소 직접 입력

    • 컴퓨터가 변경됨에 따라 다시 개발해주어야 하는 단점

    • 프로그래밍 복잡도가 높음

  • 1970년대 C언어가 개발된 후:

    • C언어로 만드니 컴파일러가 프로그래밍 언어를 기계어로 바꿔줌

    • 한번 작성한 코드를 다시 작성할 필요 X

    • 프로그래밍 복잡도는 낮음 (어셈블리 언어에 비해)

운영체제 역사 (1980년대)

- 1980년대 - 개인용 컴퓨터의 시대!

  • 1980년대 이전: 대형 컴퓨터를 여러 명이 접속해서 사용

  • 1980년대~: Personal Computer (PC)

  • GUI 환경 제공 시작

- 용어 설명! CLI와 GUI

  • CLI (Command Line Interface): 터미널 환경

    • 커맨드를 텍스트로 직접 입력하는 인터페이스

    • 키보드, 검은 화면

  • GUI (Graphical User Interface): 구이… 환경

    • 마우스로 입력하는 인터페이스

    • 마우스

- 1980년대에 CLI에서 GUI 환경이 제공되기 시작함

MS vs. Apple OSs

https://www.youtube.com/watch?v=f_Q0XPher3o

 

운영체제 역사 (1990년대)

  1. 응용 프로그램 시대 by GUI 환경, 개인용 컴퓨터 보급 (사용자 증대)

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

  • Windows OS 대중화

  1. 네트워크 기술 발전 - 월드와이드웹(WWW) 인터넷 대중화

  2. 오픈소스 운동 활성화 시작

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

  • 이때 나온 것이 LINUX 운영체제, 소스 오픈, 무료!

 

운영체제 역사 (2000년대 이후)

  1. 오픈소스 활성화

  • LINUX 운영체제

  • Apache (아파치, 웹서버)

  • MySQL (데이터베이스)

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

  1. 가상머신, 대용량 병렬처리 

 

정리1

  • 1950년대 - 운영체제 없음

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

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

  • 1980년대 - GUI, 개인용 컴퓨터

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

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

 

정리2

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

  • 응용 프로그램 용어 이해

  • 배치 처리 시스템, 시분할 시스템, 멀티 태스킹 개념

  • CLI vs GUI 환경 용어 이해

  • History 전반은 가볍게만 알아두기

 

출처 : fastcampus https://online.fastcampus.co.kr/

728x90
반응형
LIST
Comments