운영체제 개요

Lee Jun Hyeong·2023년 4월 22일
post-thumbnail

운영체제의 역할

User Interface (편리성)

  • CUI (Character user interface)
    문자를 사용해서 사용자와 컴퓨터간에 의사소통을 하는 방식, 문자 기반
  • GUI (Graphical User interface)
    그래픽을 사용하는 의사소통 방법, 그림 기반
  • EUCI (End-User Comfortable Interface)
    특정한 목적만을 가지고 기기를 사용하기도 해서 사용자가 시스템을 편하게 사용하게 하기 위한 용어

Resource management (효율성)

  • HW resource (processor, memory, I/O devices, Etc.)
  • SW resource (file, application, message, signal, Etc.)

Process and Thread management

System management (시스템 보호)

컴퓨터 시스템의 구성

커널이 제공하는 기능들 중에서 사용자가 사용할 수 있는 기능들을 모아놓은 것들이 시스템 콜 또는 시스템 콜 인터페이스라고 할 수 있다.

운영체제의 구분

동시 사용자 수

운영체제를 혼자 사용하냐 여럿이 사용하냐

  • 단일 사용자 (single-user system)
    한 명의 사용자만 시스템 사용이 가능하며, 한 명의 사용자가 모든 시스템 자원을 독점한다. 자원관리 및 시스템 보호방식이 간단하다.
    개인용 장비(PC, mobile) 등에 사용한다. 예를 들어 Windows 7/10, android, MS-DOS 등이 있다.

  • 다중 사용자 (Multi-user system)
    동시에 여러 사용자들이 시스템을 사용한다. 각종 시스템 자원(파일 등)들에 대한 소유 권한 관리가 필요하고 기본적으로 Multi-tasking 기능이 필요하다. OS의 기능 및 구조가 복잡하다.
    서버, 클러스터(cluster)장비 등에 사용한다. Unix, Linux, Windows server 등이 있다.

동시 실행 프로세스 수

  • 단일 작업 (Single-tasking system)
    시스템 내에 하나의 작업(프로세스)만 존재한다. 하나의 프로그램 실행을 마친 뒤에 다른 프로그램의 실행, 운영체제의 구조가 간단하다. 예) MS-DOS

  • 다중 작업 (Multi-tasking system, Multiprogramming system)
    동시에 여러 작업(프로세스)의 수행이 가능하다. 작업들 사이의 동시 수행, 동기화 등을 관리해야 한다. 운영체제의 기능 및 구조가 복잡하다. 예) Unix/Linux, Windows 등

작업 수행 방식 (사용자가 느끼는 사용 환경)

일괄처리 시스템 (Batch processing system)

  • 모든 시스템을 중앙(전자계산소 등)에서 관리 및 운영한다. 사용자의 요청 작업(천공카드 등)을 일정 시간 모아 두었다가 한번에 처리한다.
    따라서 예를 들면, C에서 Java로 넘어갈 때 준비시간이 줄어든다.

  • 시스템 지향적( SYstem-oriented)

  • 장점
    많은 사용자가 시스템 자원을 공유할 수 있다. 처리 효율이 향상된다.

  • 단점
    같은 유형의 작업들이 모이기를 기다려야하기 때문에 생산성(productivity)이 저하된다. 약 6시간 (작업 제출에서 결과 출력까지의 시간) 긴 응답시간이 필요하다.

시분할 시스템 (Time-sharing system)

  • OS가 파일 시스템 및 가상 메모리를 관리하여 여러 사용자가 자원을 동시에 사용할 수 있다.
  • 사용자 지향적(User-oriented)이다. 대화형 시스템, 단말기 사용
  • 장점
    응답시간을 단축하고 프로세서 유효 시간이 감소하며 생산성이 향상된다.
  • 단점
    통신 비용, 보안 문제 등으로 통신 비용이 증가한다. 동시 사용자 수가 늘어나면서 시스템 부하도 늘어나고 개인 관점에서 느려진다. 따라서 개인 사용자 체감 속도가 저하된다.

분산처리 시스템 (Distributed processing system)

  • 네트워크를 기반으로 구축된 병렬처리 시스템 (Loosely-coupled system)
    네트워크를 이용하여 여러대 컴퓨터를 느슨하게 묶여 있는 시스템이다. 물리적인 분산으로 통신망을 이용한 상호 연결 구조이다. 각각 운영체제 탑재한 다수의 범용 시스템으로 구성하다. 사용자는 분산운영체제를 통해 하나의 프로그램, 자원처럼 사용 가능하다.(은폐성, transparency). 각 구성 요소들 간의 독립성 유지가 가능하며, 공동 작업이 가능하다. Cluster system(슈퍼컴퓨터), client-server system, P2P 등이 있다.

  • 장점
    자원 공유를 통한 높은 성능을 얻을 수 있다. 고신뢰성과 높은 확정성이 있다.

  • 단점
    구축 및 관리가 어렵다.

실시간 시스템 (Real-time system)

  • 작업 처리에 제한 시간(deadline)을 갖는 시스템
    제한 시간 내에 서비스를 제공하는 것이 자원 활용 효율보다 중요하다.

  • 작업의 종류

  • Hard real-time task
    시간 제약을 지키지 못하는 경우 시스템에 치명적 영향을 끼친다. 예) 발전소 제어, 무기 제어 등

  • soft real-time task
    예를 들면, 동영상은 1초에 30장을 만들어 내야한다. 간혹 네트워크 등의 문제로 동영상 화면이 깨지는 일이 일어난다. 하지만 이러한 문제는 사용자나 누구에게도 치명적이지 않다(사회적, 재난 측면에서). 실시간으로 처리되면 좋지만 안된다고 해도 크게 문제가 되지 않는다.

운영체제의 구조

커널

  • OS의 핵심 부분 (메모리 상주)
    시스템 관리에 필요한 Processor, memory 등 가장 빈번하게 사용되는 기능들을 담당한다.
  • 동의어
    핵, 관리자 프로그램, 상주 프로그램, 제어 프로그램 등

유틸리티 (Utility)

  • 비상주 프로그램
  • UI등 서비스 프로그램

단일 구조

  • 장점
    커널 내 묘듈간 직접 통신이 가능하기 때문에 효율적 자원 관리 및 사용할 수 있다.
  • 단점
    커널의 거대화, 오류 및 버그, 추가 기능 구현 등 유지보수가 어렵다. 동일 메모리에 모든 기능이 있어, 한 모듈의 문제가 전체 시스템에 영향을 줄 수 있다.(예, 악성코드 등)

계층 구조

  • 장점
    모듈화를 통해 계층간 검수 및 수정에 용의하다.
  • 단점
    단일구조 대비 성능이 저하된다. 원하는 기능 수행을 위해 여러 계층을 거쳐야한다.

마이크로 커널 구조

  • 커널의 크기 최소화, 필수 기능만 포함하고 기타 기능은 사용자 영역에서 수행한다.

운영체제 기능

운영체제가 하는 일은 다양한 리소스를 관리 하는 것이다.

Process Management

프로세스 (Process)

  • 커널에 등록된 실행 단위 (실행 중인 프로그램)
  • 사용자 요청/프로그램의 수행 주체(entity)

OS 프로세스 관리 기능

  • 생성/삭제, 상태관리
  • 자원 할당
  • 프로세스 간 통신 및 동기화(synchronization)
  • 교착상태(deadlock) 해결

프로세스 정보 관리

  • PCB (Process Control Bloc)

Processor Management

큰 그림에서는 프로세서를 CPU라고 생각해도 된다.

중앙 처리 장치(CPU)

  • 프로그램을 실행하는 핵심 자원

프로세스 스케줄링(Scheduling)

  • 시스템 내의 프로세스 처리순서 결정

프로세서 할당 관리

  • 프로세스들에 대한 프로세서 할당한다. 한 번에 하나의 프로세스만 사용 가능하다.

Memory Management

주기억장치

  • 작업을 위한 프로그램 및 데이터를 올려 놓는 공간

Multi-user, Multi-tasking 시스템

  • 프로세스에 대한 메모리 할당 및 회수
  • 메모리 여유 공간 관리
  • 각 프로세스의 할당 메모리 영역 접근 보호

메모리 할당 방법(scheme)

  • 전체 적재
    구현이 간단하다는 장점이 있지만 제한적 공간이라는 단점이 있다.
  • 일부 적재
    프로그램 및 데이터의 일부만 적재한다. 메모리의 효율적 활용이 장점이며, 보조기억장치 접근 필요가 단점이다.

File Management

  • 파일: 논리적 데이터 저장 단위
  • 사용자 및 시스템의 파일 관리
  • 디렉토리(directory) 구조 지원
  • 파일 관리 기능
    파일 및 디렉토리 생성/삭제, 파일 접근 및 조작, 파일을 물리적 저장 공간으로 사상, 백업 등

I/O Management

  • 입출력 과정은 OS를 반드시 거쳐야한다.

참고
https://www.youtube.com/watch?v=nxl_cUd55Ag&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=2
https://www.youtube.com/watch?v=hzXVQIlSSos&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=3
https://www.youtube.com/watch?v=knF9lzHA3LI&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=4
profile
"왜" 사용하며, "어떻게" 사용하는지에 대해

0개의 댓글