운영체제의 시작과 발전

조준형·2023년 4월 13일
0

운영체제

목록 보기
1/1

운영체제 개념

운영체제란?

  • 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중계 역할을 하면서, 프로그램을 실행을 관리하고 제어하는 시스템 소프트웨어
    - 운영체제는 컴퓨터가 아님.
    - 운영체제는 시스템 소프트웨어
  • 컴퓨터가 on 될 때 부팅 모듈에 의해 메모리에 적재되며, 나머지 모든 실행 프로그램들을 제어하고 사용자의 요청을 처리해주는 시스템 소프트웨어
  • 컴퓨터 자원을 독점적으로 관리하는 시스템 소프트웨어

운영체제 정의에서 핵심 단어

OS는 모든 컴퓨터의 자원 관리

  • 자원
    하드웨어 자원 - CPU, 캐시나 메모리, 키보드, 마우스, 디스플레이, 하드 디스크, 프린터
    소프트웨어 자원 - 응용 프로그램
    데이터 자원 - 파일, 데이터베이스 등

OS는 자원에 대한 독점적 권한을 가짐

  • 자원에 대한 모든 관리 권한은 OS에게 있음
    자원 할당, 자원 공유, 자원 접근, 자원 입출력 등
    예) 파일 생성 - 디스크의 빈 공간 관리, 파일 저장 위치 관리, 파일 입출력

OS는 관리자 기능을 가짐

  • 실행중인 프로그램 관리, 메모리 관리, 파일과 디스크 장치 관리, 입출력 장치 관리, 사용자 계정 관리 등

OS는 시스템 소프트웨어

  • 커널이라고 불리는 OS의 핵심 모듈
  • UI/도구 프로그램들
    탐색기, 작업 관리자, 제어판 등
  • 장치를 제어하는 디바이스 드라이버들로 구성

운영체제의 목적과 기능

목적

  • 사용자의 컴퓨터 사용의 편리성
  • 컴퓨터의 자원 관리의 효율성

기능

  • CPU/프로세스 관리
  • 메모리 관리
  • 파일 시스템 관리
  • 장치 관리
  • 네트워크 관리
  • 보안 관리
  • 기타 관리
    사용자 관리 - 사용자 계정 관리
    통계 - CPU, 메모리, 네트워크, 사용자의 접속 시간 등
    오류 발견 및 대응
    부팅

운영체제의 발전

운영체제 태동 시절(1940년대)

1세대 컴퓨터 시절 - 운영체제 개념 없음
No OS

  • 개발자가 펀치 카드에 프로그램 작성, 입력, 실행
    컴퓨터는 한 번에 한 개의 작업만 실행
    컴퓨터는 셋업하는 동안 많은 시간이 유휴 상태

배치 운영체제

출현 배경

  • 컴퓨터의 idle 시간을 줄여 컴퓨터의 활용률 향상

배체 운영체제 컴퓨터 시스템

  • 개발자와 관리자의 구분
  • 개발자는 펀치 카드를 입력 데크에 두고 결과 기다림
  • 배체 운영체제는 자동으로 테이프 장치에 대기중인 프로그램을 한 번에 하나씩 적재하고, 실행

다중프로그래밍 운영체제

출현 배경

  • 프로그램 실행 속성으로 인한 CPU의 idle 시간 발생
  • CPU의 idle 시간을 줄이기 -> CPU 활용률 증가 -> 처리율 증가를 목표로 함

다중프로그래밍 기법 출현

  • 미리 여러 프로그램을 메모리에 적재
  • 프로그램 실행 도중 I/O가 발생하여 대기하게 될 때, 메모리에 적재된 다른 프로그램 실행

정의

  • 다중프로그래밍은 여러 프로그램을 메모리에 올려놓고, CPU가 한 프로그램을 실행하다 I/O가 발생하면, 입출력이 완료될 때까지 CPU가 메모리에 적재된 다른 프로그램을 실행하는 방식으로 CPU의 idle time을 줄이는 기법.

다중프로그래밍 도입으로 인한 이슈

큰 메모리 이슈

  • 여러 프로그램을 동시에 메모리에 올려놓기 위해서는 메모리의 크기를 늘릴 필요가 발생함

프로그램의 메모리 할당 및 관리 이슈

메모리 보호 이슈

  • 프로그램이 다른 프로그램 영역을 침범하지 못하게 막는 방법 필요

CPU 스케줄링과 컨텍스트 스위칭

인터럽트 개념 도입

  • 운영체제는 I/O 장치로부터 입출력 완료를 전달받는 방법 필요

동기화

  • 여러 프로그램이 동일한 자원을 액세스 할 때 발생하는 문제점 해결 방안

교착 상태 해결

  • 프로세스들이 서로 상대가 가진 자원을 요청하면서 무한 대기가 발생하는 교착상태 해결 방안

시분할 다중프로그래밍 운영체제

출현 배경

  • 다중프로그래밍 운영체제와 거의 동시에 연구 시작
  • 배치 처리와 당시 다중프로그래밍의 다음 2가지 문제점 인식
    (1) Batch 처리에 의한 비대화식 처리방식의 문제점 발생
    (2) 느린 응답시간, 오랜 대기 시간
    - 프로그램을 제출하고 하루 후에 결과 보기
    - 사용자의 즉각적인 대응 없음

시분할 운영체제의 시작

  • 빠른 실행과 빠른 프로그래밍 오류 디버깅 필요
  • 사용자에게 빠른 응답을 제공하는 대화식 시스템 제안
    터미널(키보드 + 모니터 + 전화선 + 모뎀)
    사용자는 터미널로 메인 컴퓨터에 원격 접속
    시간을 나누어 돌아가면서 각 터미널의 명령 처리

개인용 운영체제

출현 배경

  • 시분할 시스템 사용의 불편함
    응답 속도 저하 - 많은 사용자로 인해 응답 속도 저하
    공간 제약 - 터미널이 있는 전산실에서만 컴퓨터 사용 가능

  • 개인용 컴퓨터 필요성
    원격 접속 없이, 가정에서, 혼자 사용

개인용 컴퓨터 등장

  • 마이크로프로세스 CPU 장치 개발
  • 메인프레임이나 미니컴퓨터에 비해 저렴, 소형

임베디드 운영체제

임베디드 컴퓨터

  • 자동차 비행기 제어 시스템, 공장, 디지털 TV, ATM기 등등 가전제품이나, 산업 현장의 기계들, 상용 제품등에 내장되어 이들 장치들의 제어할 목적을 개발된 소형 컴퓨터

임베디드 운영체제

  • 임베디드 컴퓨터에서 장치들을 제어하고 작동시키는 기능을 수행하는 운영체제

모바일 운영체제

모바일 컴퓨터

  • 하드웨어의 급속한 발전으로 휴대 가능한 크기로 들고 다닐 수 있는 모바일 장치 혹은 모바일 컴퓨터 출현
  • 스마트폰, 태블릿, 스마트워치와 같은 입는 컴퓨터 등 어디에서나 휴대 가능한 컴퓨터
  • 터치스크린, 블루투스 장치, 전화기, GPS, 카메라등의 장치 내장

모바일 운영체제

  • 모바일 컴퓨터 내 장치들을 구동시키고, 이들을 활용하는 다양한 응용프로그램을 실행할 수 있도록 특별히 설계된 운영체제

운영체제의 종류

데스크톱 운영체제

  • windows, Mac OS, Linux가 전체 시장 지배

서버 컴퓨터 운영체제

  • 네트워크에 연결하여 항상 실행되는 컴퓨터, 보안 중요함.
    Unix 계열의 linux, FreeBSD, Windows Server

모바일 운영체제

  • 모바일 전화기, 스마트폰, 태블릿 컴퓨터 등 다양한 이동용 혹은 휴대용 장치에서 실행되도록 만들어진 운영체제
    Android, iOS, Windows Mobile

임베디드 운영체제

  • 임베디드 컴퓨터에서 장치들을 제어하고 작동시키는 기능
    WinCE, 임베디드 리눅스

실시간 운영체제

  • 실시간 애플리케이션 혹은 태스크를 각각 정해진 데드라인 시간 이내에 처리되도록 보장하는 것을 목표
    PSOS, VxWorks, VRTX, RT-Linux, Lynx
profile
코린이

0개의 댓글