1. 운영체제(Operation System)

    컴퓨터의 시스템 자원을 관리하고 컴퓨터 프로그램이 동작하기 위한 서비스를 제공하는 시스템 소프트웨어(S/W, 펌웨어, H/W)

       

  • 컴퓨터 시스템의 구성

    사용자-응용 소프트웨어- 시스템 소프트웨어 - 하드웨어

       

       

  • 운영체제의 역할

    - 컴퓨터 시스템의 운영

    컴퓨터 시스템의 자원을 제어 및 관리

    응용프로그램들의 실행을 도와주는 소프트웨어

     

    - 사용자 지원

    사용자의 명령을 해석하여 실행

    사용자와 하드웨어 사이의 매개체 역할 수행

       

       

  • 컴퓨터 시스템과 운영체제

       

       

    -> 운영체제가 없던 초기의 컴퓨터 시스템

    • 응용프로그램 개발자는 하드웨어 제어방법을 잘 알고 있어야 했음
    • 여러 응용프로그램이 하드웨어를 공유하는 경우 자원 분할이 어려움

       

       

       

       

    -> 운영체제가 하드웨어와 응용프로그램 사이에 위치

    • 하드웨어에 대한 제어는 운영체제만 함
    • 응용프로그램은 운영체제를 통해서만 하드웨어 이용

         

  • CPU의 동작모드
    • 슈퍼바이저 모드(*커널 모드)
      • 운영체제의 커널이 동작되는 모드
      • 하드웨어를 직접 제어할 수 있는 CPU 명령어 사용 가능

         

    • 보호 모드(사용자모드)
      • 응용프로그램이 동작되는 모드
      • 하드웨어를 직접 제어할 수 있는 CPU 명령어 사용 불가능

           

   

 

   

사용자가 응용프로그램 사용시에는 보호 모드로 동작, 하드웨어가 필요한 시점이 되면 운영체제에 모드변환을 요청하여 슈퍼바이저 모드로 동작함

이때 모드 변환은 시스템 호출을 통해 이루어짐

   

  • 시스템 호출 -> 보호 모드에서 슈퍼바이저 모드로 변경 -> 커널동작 -> 하드웨어 제어

       

    • 시스템 호출
      • 응용프로그램이 운영체제에게 서비스를 요청하는 메커니즘

       

    • 커널(kernel)
      • 운영체제의 핵심 요소.
      • 응용프로그램과 하드웨어 수준의 처리 사이의 가교 역할

           

      • 일체형 커널(monolithic kernel) -> 유닉스, 리눅스 등
        • 운영체제의 모든 서비스가 커널 내에포함됨

          -장점: 커널 내부 요소들이 서로 효율적으로 상호작용을 할 수 있음

          -단점: 한 요소에 있는 오류로 인해 시스템 전체에 장애가 발생할 수 있음

      • 마이크로 커널(microkernel)
        • 운영체제의 대부분의 요소들을 커널 외부로 분리
        • 커널 내에는 메모리 관리, 멀티태스킹, 프로세스간 통신(IPC) 등 최소한의 요소만을 남김

          -장점: 새로운 서비스를 추가하여 운영체제를 확장하기 쉬움, 유지보수 용이, 안정성 우수

          -단점: 커널 외부 요소들 사이는 IPC를 통해야만 하므로 성능 저하가 발생함

       

       

    1.1 운영체제의 구성요소

    • 컴퓨터 시스템 자원의 성격에 따라 구분
    • 프로세스, 메모리, 장치, 파일 관리자

       

    • 프로세스 관리자
      • 프로세스를 생성, 삭제, CPU할당을 위한 스케줄 설정
      • 각 프로세스의 상태를 모니터링
      • 프로세서를 한 번 할당하면 필요한 레지스터와 테이블을 작성,

        작업을 마치거나 한계 허용시간을 초과하면 프로세서를 반환함

       

    • 메모리(주기억장치) 관리자
      • 메모리(주기억장치) 공간에 대한 요구의 유효성 체크
      • 메모리 할당 및 회수
      • 메모리 공간 보호
      • 복수 사용자 환경에서는 누가 주기억장치의 어느 부분을 이용 중인지 계속 체크하기 위해

        테이블을 만듦

           

    • 장치 관리자
      • 스케줄링 기법을 기반으로 컴퓨터 시스템의 모든 장치, 채널, 제어장치를 모니터링
      • 시스템의 장치를 할당, 작동 시작, 반환

         

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

       

    1.2 운영체제의 유형

    응답시간의 속도, 데이터 입력방식에 따라 분류

       

    • 일괄처리(batch processing) 운영체제
      • 작업을 모아서 처리
      • 사용자와 상호작용 없이 순차적으로 실행
      • 효율성 평가 기준 -> 처리량, 반환시간

        *처리량: 주어진 시간 안에 처리된 작업의 수

        반환시간: 작업의 생성 시점부터 종료 시점까지의 소요시간

      • OMR 카드

           

    • 대화형(interactive) 운영체제
      • 시분할 운영체제라고도 함
      • 일괄처리 운영체제보다 빠르지만 실시간 운영체제보다는 느린 응답시간
      • 이용자에게 즉각적인 피드백을 제공

        *응답시간: 요청한 시점으로부터 반응이 시작되는 시점까지의 소요시간

       

    • 실시간(real-time) 운영체제
      • 가장 빠른 응답시간
      • 처리의 결과가 현재의 결정에 영향을 주는 환경에서 사용
      • 증권거래, 미사일 제어 시스템 등

           

    • 하이브리드 운영체제
      • 일괄처리와 대화형 운영체제 결합
      • 이용자는 터미널을 통해 접속하고 빠른 응답시간을 얻음
      • 대화형 작업이 많지 않은 경우 백그라운드에 배치 프로그램 실행
      • 현재 사용되고 있는 대부분의 대형 컴퓨터 시스템

           

           

    1.3 운영체제의 역사

       

    • 1940년대 : 초기 전자식 디지털 컴퓨터
      • 운영체제가 존재하지 않음
      • 기계적 스위치에 의해 작동

           

    • 1950년대 : 단순 순차처리 및 단일흐름 일괄처리
      • 한번에 오직 하나의 작업만 수행
      • 최소의 운영체제 등장(IBM 701)

       

    • 1960년대 : 멀티프로그래밍
      • 멀티프로그래밍, 시분할 처리 개념
      • 다중 대화식 사용자 지원
    • 1970년대 : 멀티모드 시분할
      • 일괄처리, 시분할 처리, 실시간 처리를 지원하는 멀티모드 시분할의 보편화
      • 근거리 지역 네트워크(LAN)의 실용화
      • 정보보호 및 보안문제의 증대로 암호화의 중요성 대두
    • 1980년대 : 병렬처리 및 분산처리
      • 순차처리를 벗어나 분산 및 병렬처리 발전
      • 그래픽 사용자 인터페이스(GUI)의 강화
      • 선점형 멀티태스킹, 멀티쓰레딩, 가상 메모리의 보편화

           

    • 2000년대와 그 이후 : 모바일 및 임베디드 운영체제
      • 시스템은 고기능, 고속화, 경량화 방향으로 발전
      • 다양한 통신망의 확대와 개방형 시스템의 발달
      • 다양한 기능 지원, 확장성, 호환성 극대화, 사용자 편의성 증대
      • 네트워크 기반의 분산 및 병렬 운영체제의 보편화
      • 클라우드 환경의 운영체제
      • 64비트 CPU에 호환되는 64비트용 운영체제
      • 모바일 및 임베디드 운영체제 보편화

           

         

'운영체제' 카테고리의 다른 글

04 병행 프로세스 I  (0) 2016.03.12
3. 스케줄링 알고리즘  (0) 2016.03.06
2. 프로세스 개요  (0) 2016.03.05
Posted by redcode.
,