💻CS/OS

[OS] 2. OS Overview

728x90
반응형

운영체제의 역할

  • 유저 인터페이스 (편리성)
    • gui, cui, euci (화면이 제공되는 것, 파일 아이콘, 기기만의 ui(작동을 위한) 등)
  • resource management 효율성
    • hw/sw 리소스
  • process and thread management
    • 실행의 주체 (프로세스)
  • system management

운영체제의 구분

동시 사용자 수

  • single user system
  • multi user system (동시에 / 서버가 존재. 가장 일반적)

동시 실행 프로세스 수

  • single tasking system ( 1개 )
  • multi tasking system (여러 개)

작업 수행 방식

  • batch processing system
  • time-sharing system
  • Distributed processing system
  • Real-time system

처음에는 운영체제의 개념이 없어서 순차 처리하는 방식으로 실행되었다. 즉, 각각의 작업에 대한 준비 시간이 소요되었기에 비효율적인 부분이 있었다.

그래서 등장한게 batch system이다. 모든 시스템을 중앙에서 관리 운영하며, 사용자의 요청 작업을 일정시간 모아두었다가 한 번에 처리하는 방식이다. 이전 순차와는 달리 일괄적으로 처리한다는 부분이 크게 다르다.
또한 배치 시스템은 시스템을 효율적으로 이용할 수 있는 시스템 지향적 방식이다. 장/단점은 아래와 같다.

  • 장점
    • 많은 사용자가 시스템 자원 공유
    • 처리 효율 향상
  • 단점
    • 생산성 저하
      • 같은 유형의 응답들이 모이기를 기다려야 함
    • 긴 응답시간 (요청 ~ 응답)

이러한 단점들을 보완하기 위해서 또 등장한 것이 Time Sharing System(시분할 시스템) 이다. 이전에는 A라는 요청이 들어왔을 때, A 작업을 마쳐야 B를 실행할 수 있었다. 이제는 A/B/C 작업 요청이 들어온다면 A를 조금, B를 조금, C를 조금씩 시간을 배분하여 작업을 실행하게 된다.
여러 사용자가 자원을 동시에 사용함에 따라 OS가 파일 시스템 및 가상 메모리를 잘 관리할 필요가 생겼다. 일정 시간이 지나면 반응이 있다는 부분에서 사용자 지향적인 방식이다.

  • 장점
    • 응답시간 단축
    • 생산성 향상
      • 프로세서 유휴시간 감소 (프로세서가 쉬는 시간)
  • 단점
    • 통신 비용 증가, 보안 문제
    • 개인 사용자 체감속도 저하
      • 동시 사용자 증가 > 시스템 부하 > 느려짐

그렇게 문제점을 보완하여 또 등장하게 된 것이 Personal Computing이다. 개인이 혼자 시스템을 독점하여 사용하는 방식이다. 이제는 혼자 사용하기에 다른 관점에서 컴퓨터 시스템을 보게 되었다. 이전에는 CPU 활용률 관리가 중요한 요소였으나, 개인이 사용하게 되면서 크게 고려하지 않아도 되는 요소가 되었다. 또한 혼자 사용하니 OS또 단순해지고, 사용자의 편리성을 높여주는 기능들을 지원하는 방식으로 발전되었다.

  • 장점
    • 빠른 사용자 응답시간
  • 단점
    • 성능이 낮다

성능이 낮다는 건 CPU를 여러 개 사용하면서 해결할 수 있는 문제이다. 그렇게 등장한 것이 단일 시스템 내에서 두 개 이상의 프로세서를 사용하는 Parallel Processing System이다. 메모리 등의 자원들은 공유하며 CPU만 여러 개라는 것이다. 이 덕분에 성능이 향상되었고, 신뢰성 또한 향상되었다. 예를 들어 CPU 1개가 고장났더라도 다른 CPU가 대신 일을 해줌으로써 시스템이 돌아가게 되고 신뢰성 또한 향상되는 것이다. 다만 프로세서들이 많아짐에 따라 프로세서 사이의 관계 및 역할 관리가 필요해졌다.

하지만 물리적인 환경과 다른 제한적인 요소들로 인해 성능을 높이고자 CPU를 마구잡이로 100개 200개 꽂기에는 무리가 있었다. 이에 컴퓨터들을 이어주는 방식이 등장했는데, 바로Distributed Processing System 이다. 네트워크를 기반으로 구축된 병렬처리 시스템으로 물리적인 분산이 되었고, 통신망을 통해 연결이 더 용이해졌다. 각 컴퓨터들은 각각의 OS를 가지고 있으나 분산운영체제에서 중앙에서 관리해주는 역할을 한다.

  • 장점
    • 자원 공유를 통한 높은 성능
    • 고신뢰성, 높은 확장성
  • 단점
    • 구축 및 관리가 어렵다

이제는 조금 더 다른 관점으로 시스템을 바라보게 되었다.Real-time System은 작업 처리에 제한 시간을 갖는 시스템으로 자원 활용 효율보다 작업시간이 더 중요하다는 것이다.

  • 작업의 종류
    • Hard real-time task
      • 시간 제약을 지키지 못하는 경우 시스템에 치명적일 때
    • Soft real-time task
      • 동영상 재생
    • Non real-time task

운영체제의 구조

  • 커널
    • OS의 핵심 (메모리에 항상 올라와 있음)
    • 가장 빈번하게 사용되는 기능들을 담당 (시스템 관리 등)
    • = 제어 프로그램, 관리자 프로그램, 핵
  • 유틸리티
    • 비상주(메모리에 매번 올라와있지는 않음 / 필요할 때)
    • UI등 서비스 프로그램

하드웨어 < 커널 < 시스템 콜 < 유틸리티 < 어플리케이션 순으로 감싸고 있다고 보면 된다. 유틸리티까지 OS이고 어플리케이션은 사용자들이 쓰는 프로그램이라고 보면 된다!

단일 구조

하나의 거대한 커널로 모아둔 것을 단일 구조 운영체제라고 한다.
그 커널 안에는 메모리 관리자, 프로세서 스케줄러, 파일 시스템, 네트워크 관리자 등 모든 요소들이 속해있다.

  • 장점
    • 커널 내 모듈간 직접 통신 가능
    • 효율적 자원 관리 및 사용
  • 단점
    • 커널의 거대화
    • 오류 및 버그, 추가 기능 등 유지 보수가 어려움
    • 동일 메모리에 모든 기능이 있어, 하나의 문제가 전체 시스템에 영향을 줄 수 있다.

계층 구조

단일 구조에서 기능별로 계층을 구분하여 관리하자는 것에서 출발한 개념이다.

  • 장점
    • 모듈화
    • 설계/구현의 단순화
  • 단점
    • 단일구조 대비 성능 저하
    • 여러 계층을 거쳐야 기능 수행이 완료됨

마이크로 커널 구조

커널의 크기를 최소화하여, 기타 기능은 사용자 영역에서 수행하자는 방식!

운영제제의 기능

운영체제가 하는 일은 관리이다.

프로세스 관리

  • 프로세스
    • 커널에 등록된 실행 단위 (실행 중인 프로그램)
    • 프로그램의 수행 주체
  • 관리 기능
    • 생성/삭제, 상태 관리
    • 자원 할당
    • 프로세스 간 통신 및 동기화
    • 교착상태(dead lock) 해결
      • 교착상태란? 여러 개의 프로세스가 하나의 자원을 동시에 쓰려고 하는 상황을 말한다.
  • 프로세스 정보 관리
    • PCB

프로세서 관리

프로세서 = CPU

  • 프로세스 스케줄
    • 시스템 내의 프로세스 처리 순서 결정
  • 프로세서 할당 관리
    • 프로세스들에 대한 프로세서 할당

메모리 관리

  • 주기억장치
    • 작업을 위한 프로그램 및 데이터를 올려두는 공간
  • 메모리 할당 및 회수
  • 메모리 여유 공간 관리
  • 각 프로세스의 할당 메모리 영역 접근 보호
  • 메모리 할당 방법
    • 전체 적재
    • 일부 적재

파일 관리

  • 파일 : 논리적 데이터 저장 단위
  • 사용자 및 시스템의 파일 관리
  • 디렉토리 구조 지원
  • 파일 관리 기능
    • 생성/삭제/접근 및 조작

입출력 관리

  • 입출력은 OS를 무조건 거쳐서 실행되어야 한다.

보조 기억 장치 및 기타 주변장치 관리

  • 디스크
  • 네트워크
  • 보안 문제 등등

이렇게 운영체제의 큰 그림을 보았고, 세부 내용들을 이후 강의에서 자세하게 살펴보자. 이번 강의에서 핵심이라고 할 부분은 역시, 운영체제는 HW를 잘 관리하여 사용자 혹은 응용 프로그램에 편의를 제공하는 역할을 한다는 것! 또한 각각의 구조들이 어떤 이유로 어떻게 개선되었는지 등의 내용을 이해하고 있으면 될 것 같다.

728x90
반응형