728x90
What Operating Systems Do

What Operating Systems Do

  • 컴퓨터 시스템의 구조 : Hardware (CPU, mem, I/O, ...) > Operating System > Application (Compiler, Browser, SDK, ...) > User

  • 사용자 관점에서의 운영체제

    • 간편한 실행, 빠른 속도
    • 모바일 기기의 발전으로 UI의 형태도 다양화 ex. 윈도우(키보드 + 마우스) >> 스마트폰(터치스크린)
    • 사용자 관점이 없는 HW 역시 존재 ex. Embedded System
  • 시스템 관점의 운영체제

    • 시스템과 유저가 1:N 관계
    • 자원 활당 및 관리 역할
    • HW / 유저 프로그램 사이의 조율
  • 운영체제의 정의

    • 좁은 의미 : OS 동작 시 상주하는 프로그램(커널)

Computer System Organization

  • 버스 : CPU, 디스크, 메모리, USB 등의 다수 기기를 연결

  • 컨트롤러 : 컴퓨터 주변 기기를 제어

  • 버퍼 메모리 : 각 컨트롤러의 결과 저장

  • 드라이버 : CPU가 명령을 내릴 때 동작 방식 등을 정의

  • [ CPU - 메모리 - 버퍼 ] 및 [ IO - 버퍼 ]의 과정으로 각각 통신


  • 인터럽트
    • 주변 디바이스들이 CPU에게 이벤트 발생을 알려 주는 것 (ex. HDD의 읽기 완료 신호)
    • Interrupt Service Routine(ISR) : 인터럽트 발생 시 동작해야 하는 명령어
      • 인터럽트 벡터 : ISR이 저장된 주소, 실행하여야 하는 ISR 함수의 메모리 위치를 기록한 Array
    • 인터럽트 발생 시 : > 수행하던 작업 일시 중지 > 인터럽트 처리 > 복귀 후 작업 재실행
    • SW적인 인터럽트도 존재 : Exception(예외)
  • Interrupt handling
    • 인터럽트 발생 시 OS는 작업 중이던 프로그램의 상태를 저장
    • 어떤 인터럽트가 발생했는지 확인할 필요
      • Polling : 디바이스별로 확인, 최근에는 거의 쓰이지 않음
      • Vectored Interrupt System : 각 번호(index)에 해당하는 인터럽트 확인
  • 인터럽트 발생 순서 (I/O Device)
    1. CPU(OS) : driver에게 I/O request 명시
    2. Driver : I/O 컨트롤러에 맞는 명령어 실행
    3. I/O 컨트롤러 : 명령 수행
      • CPU : 다른 작업 수행 및 다른 Event 확인
    4. I/O 컨트롤러 : 작업 완료 후 CPU에게 인터럽트
    5. CPU : I/O 컨트롤러의 인터럽트 index에 맞는 ISR 탐색
    6. CPU : 이전 작업 저장 후 인터럽트 실행
    7. CPU : 인터럽트 처리 완료 후 작업 상태로 복귀

  • I/O Structure
    • System Call : 사용자 프로그램 대신 운영체제가 디바이스 신호를 처리
    • Device-Status Table : 디바이스에 번호를 부여하여 인터럽트 발생 시 어떤 디바이스에서 발생했는지 정확한 판단
  • Storage Structure
    • 메인 메모리 : Random Access, 휘발성 - 휘발되는 데이터를 별도 저장 필요
    • Secondary Storage : HDD, SSD 등 메인 메모리를 보조하여 비휘발성 저장
    • 스토리지 계층
      • 스토리지 별로 가격, 속도, 휘발성이 모두 다름
      • 최상위에 즉시 사용할 데이터 저장
  • Modern Computer (폰 노이만 구조)
    • 캐시 메모리 : CPU 내에서 명령어 로드, 데이터 기록
    • 메인 메모리 : 실제 명령어가 위치
    • DMA(Direct Memory Access)
      • 디바이스에서 데이터 복사 시 CPU의 연산 부담 및 위험성을 경감
      • 디바이스에서 메모리로 데이터를 복사하는 별도 프로세스 할당
      • CPU가 디바이스 데이터 request를 보내면, 디바이스는 DMA를 통해 메모리로 데이터 복사 후 완료 신호만 보내서 CPU의 처리 부담 완화

Multiprocessor

  • 병렬 시스템이라고도 부름
    • 고성능 : 다양한 어플리케이션을 각 프로세스에 할당 가능
    • 신뢰성 : 한 어플리케이션이 동작 실패 시에도 다른 프로세스는 계속 동작
  • 멀티프로세싱의 종류
    • 동기 : 각 프로세서가 한 작업을 분할 처리
    • 비동기 : 각 프로세서가 다른 작업(I/O, 계산 등)
  • 멀티코어
    • 1개 프로세서 안에 다수 Local Cache와 CPU 코어 배치

Operating System Operations

  • 운영체제의 동작
    • Bootstrap
      • 실행 직후 시스템을 초기화
      • 커널을 실행
    • Kernel : 시스템 데몬(daemon) 실행
      • 데몬 : 시스템 소프트웨어 실행 (ex. 새 프로세스 생성)
    • 연결된 디바이스들이 실행되면서 인터럽트 발생
      • CPU에서는 인터럽트를 통해 하드웨어 설정

  • 멀티프로그래밍(Batch System)
    • CPU가 처리할 작업들을 한번에 할당하여 OS가 스케줄링(Scheduling)
    • 고가의 자원을 다수 사용자가 공유하여 사용할 때
  • 시분할(multitasking)
    • Batch System의 경우 다수 프로그램을 하나로 묶어서 처리
    • 시분할의 경우 동작하는 각 프로그램별로 실행 시간을 제한하여 주기적으로 전환
    • 시분할 스케줄링 과정에 시간을 재기 위한 Timer Interrupt 필요
    • 메모리 크기 이상의 프로그램 동작을 위해 가상 메모리 개념 사용
  • Dual Mode (Multimode)
    • 운영체제 동작 시 프로그램들은 서로 영향을 끼치지 않게 해야 함
    • User / Kernel Mode : 운영체제 /사용자가 실행하는지 확인하기 위해 Mode bits가 하드웨어에서 지원
    • Privileged Instructions : 커널 모드에서만 동작하는 특정 명령어
    • User - Kernel Mode 전환
      • User > Kernel : System Call
      • System Call 후 복귀는 인터럽트로 호출

Resource Management

  • Process Management
    • Process : 운영체제가 관리하는 개체
      • Program : Passive Entity / Process : Active Entity
    • Process 동작에 필요한 자원
      • CPU, Mem, I/O, 파일 등
      • Initialize Data
    • 운영체제는 종료된 Process의 자원을 회수
    • 1개 스레드당 1개의 Program Counter(PC)가 할당
      • PC : 처리하는 명령어(Instruction)의 주소를 저장
  • OS의 Process Management
    • 유저 및 시스템 프로세스를 생성 및 삭제
    • 프로세스를 중간에 멈추고 재시작
    • 프로세스 간의 공유 자원 접근 동기화
    • 프로세스 간의 통신 관리
    • 교착(Deadlock) 발생 방지

  • Memory Management(MM)

    • 실행하는 프로그램의 명령어는 메모리에 할당
    • 메모리 사용을 요구하는 프로세스 확인 및 관리
    • 프로세스의 데이터 사용 시점 확인, 필요 없는 데이터는 잠시 공간 확보 후 필요할 때 할당
  • File-System Management

    • 파일 및 폴더의 생성 및 실행, 수정 지원
    • 파일의 소유권 / 그룹에 따라 접근 관리
  • Mass-Storage Management

    • 외부 저장소(HDD, USB 등) 연결 시 마운트/언마운트
    • 속도가 서로 다른 저장소 스케줄링
    • Caching : 자주 사용하는 파일일수록 CPU에 가까운 저장소로 이동

Security / Protection / Virtualization

  • Protection : OS 내의 프로세스 혹은 유저가 시스템 자원에 접근하는 것을 제어

  • Security : 내/외적 공격에 대한 방어 ex. Overflow, 바이러스

    • 유저 구분 : User ID, security ID - 파일 접근 권한 제어
    • Group ID : 해당 그룹에 속하는 유저들의 권한 제어
    • Privilege escalation : 유저가 임시로 상위 권한 접근 - 보안 면에서 많은 고려 필요

  • Virtualization
    • Eumlation
      • 가상머신을 구동하고자 하는 HW가 실제 사용중인 HW와 다를 때 사용
      • 매우 느린 속도
    • Virtualization
      • 가상 OS와 실 환경이 동일한 HW 사용

Computing Environments

  • 기존의 컴퓨팅 환경

    • Standalone 모델
    • 프로그램도 대부분 local 환경
    • 네트워크 환경의 발달로 local device에서 웹의 thin client 역할로 변화
  • 모바일 : 스마트폰, 태블릿 등

    • GPS, 기울기 등의 데이터를 수집 가능
    • Apple IOS / Google Android가 대표적
  • Client-Server 모델

    • 중앙의 서비스 제공자(Server)과 주변의 데스크톱, 스마트폰 등의 단말 장비(Client)로 구분
    • 예 : 데이터베이스, 파일 공유 등
  • Peer-to-Peer 모델

    • 서버/클라이언트 구분 대신 각 클라이언트를 서로 연결, 서로가 서비스 제공자이자 소비자
  • 클라우드 컴퓨팅

    • 컴퓨터에서 사용하던 서비스를 네트워크로 제공
    • ex. AWS, GCP, Azure 등
    • Public Cloud : 유저가 사용 가능한 클라우드 영역 ex. AWS EC2 컴퓨팅 모듈 등
    • SaaS : 인터넷을 통한 어플리케이션 제공
    • PaaS : 어플리케이션을 동작 가능한 환경(플랫폼)을 클라우드에 구축
  • 임베디드 세스템

    • 항상, 실시간으로 동작하는 시스템
    • 특정한 목적으로 한정된 시스템
728x90

+ Recent posts