[운영체제] 운영체제의 개요

2022. 4. 28. 01:27·방통대 컴퓨터과학과/3학년1학기
반응형

 

 

운영체제의 개요

운영체제의 역할

  • 운영체제? 
    • 컴퓨터의 하드웨어 자원을 관리
    • 컴퓨터 프로그램이 동작하기 위한 서비스를 제공하는 시스템 소프트웨어

컴퓨터 시스템의 운영

  • 운영체제는 컴퓨터 시스템의 자원을 제어 및 관리하여 컴퓨터 시스템을 효율적으로 운영하는 역할
  • 시스템 자원
    • 하드웨어 자원 : CPU, 메모리, 키보드, 마우스, 네트워크 카드 등
    • 소프트웨어 자원 : 프로그램, 데이터 등
  • 즉, 응용 프로그램들의 실행을 위해 자원들이 적절히 활용되도록 제어하고 관리하는 역할

사용자 지원

  • 사용자가 편리하게 컴퓨터를 사용할 수 있도록 지원 → GUI(Graphical User Interface) 인터페이스 제공 등
  • 사용자가 내린 명령을 해석하여 실행, 사용자와 하드웨어 사이의 매개체 역할
반응형

 

컴퓨터 시스템과 운영체제

  • 옛날 옛적 운영체제가 없었던 시절에는 사용자가 응용 프로그램을 수행시키면 응용 프로그램이 직접 컴퓨터 시스템의 자원을 제어했다. → 개발자가 하드웨어 제어 방법을 알고 있어야 했음.
  • 그리고 하나의 하드웨어를 여러 사용자가 공유해서 사용하는 경우에 응용 프로그램들끼리 효율적으로 서로 자원을 나눠 쓰기가 어려워 컴퓨터 시스템이 제대로 동작하지 못함
  • 위의 문제점들을 극복하기 위해 하드웨어와 응용 프로그램 사이에 운영체제를 두고 하드웨어에 대한 제어는 운영체제에게 전적으로 맡김
  • 응용 프로그램과 하드웨어는 서로 몰라도 된다. 운영체제가 그 사이에서 응용 프로그램 대신 하드웨어를 제어해주고, 그 결과를 응용 프로그램에게 제공한다.

  • 여러 응용 프로그램이 동시에 수행되더라도 운영체제가 중간에서 충돌 없이 자원을 효율적으로 나눠 준다.
  • 이러한 기능으로 운영체제는 컴퓨터 시스템이 안정적이고 효율적으로 동작할 수 있게 만들어준다.
  • 응용 프로그램과 하드웨어 사이의 완벽한 매개체가 되려면 응용 프로그램이 직접적으로 하드웨어에 접근하는 것을 막아야 한다. 괜히 이것저것 건드렸다가 시스템의 안정성을 보장할 수 없게 되기 때문이다.
  • 해결책으로 슈퍼바이저 모드와 보호 모드가 제공된다.
    • 슈퍼바이저 모드(= 커널 모드) : 하드웨어를 직접 제어, CPU의 명령어를 사용할 수 있다. 운영체제의 커널이 동작되는 모드이다.
    • 보호 모드(= 사용자 모드) : 하드웨어를 직접 제어하는 CPU의 명령어를 사용할 수 없다. 응용 프로그램이 동작되는 모드이다.
    • 따라서 하드웨어를 직접적으로 제어하고 싶으면 운영체제에게 슈퍼바이저 모드로 변경해달라고 요청해야 한다. 그러면 보호 모드에서 슈퍼바이저 모드로 전환이 되고 커널이 동작하여 하드웨어 제어를 할 수 있다. 이때 응용 프로그램이 운영체제에 서비스를 요청하는 메커니즘을 시스템 호출이라 한다.
반응형

 

커널(Kernel)

  • 응용 프로그램과 하드웨어 수준의 처리 사이의 가교 역할을 하는 운영체제의 핵심 요소이다.
  • 일체형 커널(Monolithic kernel) : 운영체제의 모든 서비스가 커널 내에 포함. 
    • 장점 : 커널 내부 요소로 존재하는 여러 서비스들이 서로 효율적으로 상호작용 할 수 있음.
    • 단점 : 모든 요소가 커널 내부에 존재하기 때문에 하나의 요소에서라도 오류가 발생하면 시스템 전체에 장애를 일으킴.
    • 운영체제 : UNIX, Linux

일체형 커널

  • 마이크로 커널(Microkernel) : 운영체제의 대부분의 요소들을 커널 외부로 분리. 커널 내부에는 메모리 관리, 멀티태스킹, 프로세스 간 통신(IPC) 등의 최소한의 요소들만 남겨 놓음.
    파일 시스템, 장치 드라이버, 네트워크 프로토콜 등은 보호 모드에서 동작하도록 분리.
    • 장점 : 새로운 서비스를 추가하여 운영체제 확장이 쉬움. 커널 외부 요소에 문제가 발생하더라도 커널 자체에는 영향이 없기 때문에 유지보수 용이 → 안정성 우수
    • 단점 : 커널 외부에 존재하는 운영체제들의 요소들 사이에 데이터 전달이 필요한 경우에는 프로세스 간 통신(IPC)을 통해야 함. → 성능 저하 발생

 

반응형

운영체제의 구성

프로세스 관리자

  • 프로세스(process) : 실행 중인 프로그램 또는 작업(job)
  • 프로세스 관리자는 프로세스들을 생성, 삭제하며 CPU에 할당하기 위한 스케줄 결정
  • 각 프로세스의 상태(준비, 실행, 대기 등)를 관리하며 상태 전이 처리

운영체제를 구성하는 4개의 서브 시스템

메모리 관리자

  • 메모리, 즉 주기억장치를 제어
  • 주기억장치 공간에 대한 각각의 요구가 유효한지 체크, 적법한 요구면 메모리 할당.
  • 주기억장치를 반환할 시간이 되면, 회수
  • 운영체제 자신이 점유하고 있는 주기억장치의 공간 지킴
    • 다른 응용 프로그램이 이 공간에 들어올 수 있게 하면 안 된다.

장치 관리자

  • 컴퓨터 시스템의 모든 장치 관리
  • 시스템 설계자에 의해 결정된 스케줄링 기법을 기반으로 하여 시스템의 모든 장치를 가장 효율적으로 할당
  • 장치 관리자는 할당, 작동을 시작, 마지막으로 장치 반환

파일 관리자

  • 컴파일러, 인터프리터, 어셈블러, 유틸리티 프로그램, 데이터 파일과 응용 프로그램을 포함하는 시스템의 모든 파일 관리
  • 파일의 접근 제한 관리, 파일을 열어 자원 할당, 파일을 닫아 자원을 회수

 

운영체제의 유형

일괄처리 운영체제

  • 초창기 컴퓨터에서 사용되었던 유형, 작업을 모아서 한 번에 처리
  • 사용자의 상호작용 없이 순차적으로 실행
  • 효율성 기준 : 주어진 전체 시간 안에 처리된 작업의 수를 의미하는 처리량(throughput)과 수 시간이나 수일 동안 측정된 반환시간(turnaround time)에 의해 평가
  • 반환시간 : 작업의 생성 시점부터 종료 시점까지의 소요 시간

대화형 운영체제(시분할 운영체제)

  • 응답시간 측면에서 일괄처리보다 빠르지만 실시간 운영체제보다는 느리다.
  • 이용자가 자신의 프로그램을 디버깅할 때 좀 더 빠른 시간을 요구하는 이용자의 욕구를 만족시키기 위해 개발
  • 터미널을 통하여 사용자가 직접 컴퓨터에 명령을 내릴 수 있음
  • 이용자에게 즉각적인 피드백을 제공, 응답시간은 사용 중인 이용자의 수에 따라 수 분 또는 수 초 안에 처리
  • 응답 시간 : 요청한 시점부터 반응이 시작되는 시점까지의 소요시간

실시간 운영체제

  • 모든 운영체제 중 가장 빠른 응답 시간을 가짐
  • 처리의 결과가 현재의 결정에 영향을 주기 때문에 데이터의 처리 속도가 극도록 빨라야 하는 환경에서 사용
  • 우주선 비행 시스템, 미사일 제어, 증권거래 관리 시스템, 은행 입출금 시스템 등

하이브리드 운영체제

  • 일괄처리와 대화형 운영체제의 결합
  • 각 이용자가 터미널을 통해 접속, 빠른 응답 시간을 얻을 수 있음
  • 대부분의 대형 컴퓨터 시스템은 하이브리드 운영체제
반응형

 

운영체제의 역사

1940년대와 1950년대

  • 1940년의 초기 전자식 디지털 컴퓨터에는 운영체제가 없었다. 
  • 프로그램은 기계적인 스위치에 의해 입력되었음
  • 기계언어 프로그램은 천공 카드 위에 입력, 프로그램의 처리속도를 빠르게 하기 위해 어셈블리 언어 개발
  • 1950년대는 한 번에 오직 하나의 작업만을 수행, 컴퓨터 시스템을 최대한 활용하기 위해 작업 간 변환을 원활하게 하도록 설계
  • 프로그램과 데이터가 일괄적으로 입력되므로 단일 흐름 일괄처리라고도 부른다.

1960년대

  • 일괄처리 시스템이지만 몇 개의 작업을 동시에 수행시켜 컴퓨터의 자원을 보다 효율적으로 사용하는 것이 가능
  • 카드 판독기, 카드 천공기, 프린터, 테이프 드라이버, 디스크 드라이버 등 많은 주변장치 포함
  • 운영체제 설계자는 몇 개의 작업이 메모리에 동시에 있게 하는 멀티프로그래밍 개념 개발
  • 멀티프로그래밍 : CPU를 사용 중인 하나의 작업이 입출력 작용을 완료하기 위해 대기하고 있는 동안 다른 작업이 이 대기 중인 CPU를 사용할 수 있게 되어 다양한 작업을 혼합하여 수행
  • 다중 대화식 사용자를 위한 운영체제 개발
    • 터미널을 통해 사용자와 컴퓨터가 상호작용
  • 시분할 시스템 
    • 동시적인 대화식 사용자의 멀티프로그래밍을 위해 개발
    • 1960년대의 많은 시분할 시스템은 일괄처리는 물론 산업처리 제어 시스템과 같은 실시간(real-time) 응용을 지원하는 멀티모드 시스템이었음

1970년대

  • 시스템이 주로 일괄처리, 시분할 처리 및 실시간 처리를 지원하는 멀티모드 시분할 시스템이었음
  • CPU의 속도가 놀랄 정도로 발전, 하지만 입출력 속도는 느려 하나의 CPU를 여러 개의 프로그램이 공유하여 사용하는 멀티프로그래밍 기술이 발전
  • 근거리 지역 네트워크(Local Area Network, LAN)에서의 통신은 이더넷(Ethernet) 표준에 의해 실용화되고 경제적으로 되었음
  • 정보 보호를 위한 보안문제가 증대됨과 아울러 암호화가 많은 주목을 받게 됨

1980년대

  • 컴퓨터 구성요소의 가격 대비 성능이 크게 향상, 하드웨어는 부분적인 기능을 쉽게 교체할 수 있는 카드를 이용하게 되어 융통성 향상
  • 운영체제 기능이 하드웨어 자체에 포함된 새로운 개념인 펌웨어(firmware)가 나오게 되었음.
    • 펌웨어 : ROM에 영구히 기억되는 프로그램
  • 2개 이상의 프로세서를 이용하는 멀티프로세서 환경으로 변화
  • 개인용 컴퓨터 보급화
  • 네트워크상에서 다양한 서비스를 필요로 하는 클라이언트와 하드웨어 또는 소프트웨어 구성원으로 서비스를 수행하는 서버로 구성되는 클라이언트/서버 모델이 널리 퍼짐

1990년대

  • 병렬 처리와 분산 처리 발전
  • 네트워크와 멀티미디어 처리 기술 발전
  • 운영체제는 명령어 기반에서 벗어나 그래픽 사용자 인터페이스(GUI) 강화
  • 선점형 멀티태스킹과 멀티쓰레딩, 가상 메모리와 메모리 보호 등이 보편화

2000년대와 그 이후

  • 모바일과 임베디드 운영체제의 시대
  • 다양한 통신망이 확대되고 개방형 시스템이 발달
  • 운영체제는 확장성과 호환성을 높이고 사용자 편의성을 더욱 높이는 방향으로 발전
  • 네트워크 기반의 분산 및 병렬 운영체제 보편화, 클라우드 환경의 운영체제가 새로이 등장
  • ICT와 융합된 가전제품이 등장하면서 모바일 및 임베디드 운영체제가 보편화
반응형
저작자표시 비영리 변경금지 (새창열림)
'방통대 컴퓨터과학과/3학년1학기' 카테고리의 다른 글
  • [운영체제] 프로세스 개요
  • [Java] Java와 객체지향 프로그래밍
  • [C언어] C 언어의 정의
  • 데이터베이스의 이해
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SQL
    개발자
    인프런
    자바스크립트
    SpringBoot를 이용한 RESTful Web Service 개발
    전자정부프레임워크
    JPA
    알고리즘
    코딩테스트
    기출문제
    oracle
    토이프로젝트
    스프링부트
    토비의스프링부트
    egov
    프로그래머스
    springboot
    Java
    백준
    에러해결
    프론트엔드
    IT
    RESTful
    QueryDSL
    방통대
    Spring
    운영체제
    react
    MSA
    넥사크로
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
[운영체제] 운영체제의 개요
상단으로

티스토리툴바