Operating System

October 22, 2023 - 우원

시험 대비 정리입니다.

What is an Operating System

  • 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중개자 역할을 하는 프로그랩
  • 사용자 프로그램 실행과 컴퓨터 시스템을 사용하기 쉽게하는 것이 목표
  • 효율적인 방식으로 하드웨어를 사용하는 것이 목표

Computer System Structure

  • 하드웨어: CPU, memory, I/O divices
  • 운영체제: 다양한 응용 프로그램과 사용자 사이에서 하드웨어의 사용을 제어하고 조정하는 역할
  • 실행 프로그램: 사용자의 컴퓨팅 문제를 해결하는 사용는 시스템 자원의 한 종류 ex) 워드 프로세서, 컴파일러, 웹 브라우저, 데이터베이스 시스템, 비디오게임
  • 사용자: 사람들, 기계, 그리고 다은 컴퓨터들

Operation System Difinition

  • 사용자 뷰 VS 시스템 뷰
  • 사용자 뷰: PC, 사용자 프로그램의 실행
  • 시스템 뷰: 운영체제는 자원 할당자, 프로그램 제어자

Computer System Difinition(Cont.)

  • 받아들여지는 공통된 정의는 없음
  • 운영체제에 명령을 내릴 때 공급자가 운송하는 모든것?
  • “컴퓨터에서 항상 실행되는 하나의 프로그램”은 커널, 그 밖의 모든 것은 시스템 프로그램(운영 체제와 함께 제공) 또는 응용 프로그램

Computer StartUp

  • 부트스트랩 프로그램은 컴퓨터를 켤 때 가장 먼저 실행되는 프로그램
  • 전형적으로 ROM, EEPROM 또는 플래시 메모리에 저장
  • 일반적으로 펌웨어라고 함

Computer System Organization

  • 하나 이상의 CPU, 장치 컨트롤러는 공유 메모리에 대한 액세스를 제공하는 공통 버스를 통해 연결
  • 메모리 사이클을 두고 경쟁하는 CPU와 장치의 동시 실행

Summary

  • I/O 장치와 CPU는 동시에 실행 가능
  • 각 장치 컨트롤러는 특정 장치 유형을 담당
  • 각 장치 컨트롤러에는 로컬 버퍼 존재
  • CPU는 메인 메모리와 로컬 버퍼 사이에서 데이터를 이동
  • I/O는 장치에서 컨트롤러의 로컬 버퍼로 구성
  • 장치 컨트롤러는 인터럽트를 발생시켜 CPU에 작업이 완료되었음을 알림

Common Functions of Interrupts

  • 인터럽트는 일반적으로 모든 서비스 루틴의 주소가 포함된 인터럽트 벡터를 통해 인터럽트 서비스 루틴으로 제어를 전달
  • 인터럽트 아키텍처는 인터럽트된 명령어의 주소를 저장해야 함
  • 인터럽트 손실을 방지하기 위해 다른 인터럽트가 처리되는 동안 들어오는 인터럽트는 비활성화 됨
  • 트랩은 오류 또는 사용자 요청으로 인해 발생하는 소프트웨어 생성 인터럽트
  • 운영 체제는 인터럽트 구동 방식(H/W 인터럽트, S/W 인터럽트: 트랩)

Operating System Structure

Multiprogramming

  • 효율성을 위해서는 다중 프로그래밍이 필요함
  • 단일 사용자는 CPU 및 I/O 장치를 항상 바쁜 상태로 유지할 수 없음
  • 다중 프로그래밍은 작업(코드 및 데이터)을 구성하여 CPU가 항상 실행할 작업을 갖도록 함
  • 시스템의 전체 작업 중 일부가 메모리에 보관
  • 하나의 작업을 선택하여 작업 스케줄링을 통해 실행
  • 기다려야 할 때(예: I/O) OS는 다른 작업으로 전환

Multitasking

  • 시간 공유(멀티태스킹)는 CPU가 작업을 자주 전환하여 사용자가 각 작업이 실행되는 동안 상호 작용할 수 있도록 하는 논리적 확장으로 대화형 컴퓨팅을 생성
  • 응답 시간은 1초 미만
  • 각 사용자는 메모리 프로세스에서 실행되는 적어도 하나의 프로그램을 가지고 있음
  • 여러 작업을 동시에 실행할 준비가 된 경우  CPU 스케줄링
  • 프로세스가 메모리에 맞지 않으면 스와핑을 통해 프로세스를 안팎으로 이동하여 실행
  • 가상 메모리를 사용하면 메모리에 완전히 포함되지 않은 프로세스를 실행 가능

Operating System Operations

  • 하드웨어에 의한 인터럽트
  • 소프트웨어 오류 또는 요청으로 인해 예외 또는 트랩이 발생함
    • 0으로 나누기, 운영체제 서비스 요청
  • 기타 프로세스 문제로는 무한 루프, 서로 수정하는 프로세스 또는 운영 체제 등
  • 듀얼 모드 작동을 통해 OS는 자체 및 기타 시스템 구성 요소를 보호 가능
    • 사용자 모드와 커널 모드
    • 하드웨어에서 제공하는 모드 비트
      • 시스템이 사용자 코드 또는 커널 코드를 실행하는 시기를 구별하는 기능 제공
      • 특권으로 지정된 일부 명령어는 커널 모드에서만 실행 가능
      • 시스템 호출은 모드를 커널로 변경하고, 호출에서 복귀하면 이를 사용자에게 재설정

Transition from User to Kernel Mode

  • 무한 루프 방지를 위한 타이머 / 프로세스 호깅(hogging) 리소스
    • 특정 기간 이후 인터럽트 설정
    • 운영 체제가 카운터를 감소
    • 카운터 0이 인터럽트를 생성할 때
    • 할당된 시간을 초과하는 프로그램에 대한 제어권을 회복하거나 종료하기 위해 프로세스를 예약하기 전에 설정

Process Management

  • 프로세스는 실행 중인 프로그램입니다. 시스템 내의 작업 단위. 프로그램은 수동적인 실체이고, 프로세스는 능동적인 실체
  • 프로세스는 작업을 수행하기 위해 자원이 필요
    • CPU, 메모리, I/O, 파일
    • 초기화 데이터
  • 프로세스 종료에는 재사용 가능한 리소스를 회수 필요
  • 단일 스레드 프로세스에는 실행할 다음 명령의 위치를 지정하는 하나의 프로그램 카운터 존재
    • 프로세스는 완료될 때까지 한 번에 하나씩 순차적으로 명령을 실행
  • 다중 스레드 프로세스에는 스레드당 하나의 프로그램 카운터 존재
  • 일반적으로 시스템에는 하나 이상의 CPU에서 동시에 실행되는 일부 사용자, 일부 운영 체제 등 많은 프로세스 존재
    • 프로세스/스레드 간 CPU 다중화를 통한 동시성

Process Management Activities

운영 체제는 프로세스 관리와 관련하여 다음 활동을 담당

  • 사용자 프로세스와 시스템 프로세스 모두 생성 및 삭제
  • 프로세스 일시 중지 및 재개
  • 프로세스 동기화를 위한 메커니즘 제공
  • 프로세스 커뮤니케이션을 위한 메커니즘 제공
  • 교착상태 처리 메커니즘 제공

Memory Management

  • 처리 전후의 메모리에 있는 모든 데이터
  • 실행을 위해 메모리에 있는 모든 명령어
  • 메모리 관리는 언제 메모리에 무엇이 있는지 결정
    • CPU 활용도 및 사용자에 대한 컴퓨터 응답 최적화
  • 메모리 관리 활동
    • 현재 메모리의 어떤 부분을 누가 사용하고 있는지 추적
    • 메모리 안팎으로 이동할 프로세스(또는 그 일부)와 데이터 결정
    • 필요에 따라 메모리 공간 할당 및 할당 해제

Storage Management

  • OS는 정보 저장에 대한 통일되고 논리적인 보기를 제공
    • 물리적 속성을 논리적 저장 장치인 파일로 추상화
    • 각 매체는 장치(예: 디스크 드라이브, 테이프 드라이브)에 의해 제어
      • 다양한 속성에는 액세스 속도, 용량, 데이터 전송 속도, 액세스 방법(순차 또는 무작위)이 포함
  • 파일 시스템 관리
    • 일반적으로 디렉토리로 구성된 파일
    • 대부분의 시스템에 대한 액세스 제어를 통해 누가 무엇에 액세스할 수 있는지 결정
    • OS 활동에는 다음이 포함
      • 파일 및 디렉터리 생성 및 삭제
      • 파일과 디렉토리를 조작하는 기본 요소
      • 보조 저장소에 파일 매핑
      • 안정적인(비휘발성) 저장 매체에 파일 백업

Mass-Storage Management

  • 일반적으로 메인 메모리에 맞지 않는 데이터나 장기간 보관해야 하는 데이터를 저장하는 데 사용되는 디스크
  • 적절한 관리가 가장 중요
  • 컴퓨터 작동의 전체 속도는 디스크 하위 시스템과 해당 알고리즘에 따라 다름
  • OS 활동
    • 여유공간 관리
    • 스토리지 할당
    • 디스크 스케줄링
  • 일부 스토리지는 빠를 필요가 없음
    • 3차 스토리지에는 광스토리지, 자기테이프 등이 포함
    • 그래도 관리는 필요
    • WORM(한 번 쓰기, 여러 번 읽기)과 RW(읽기-쓰기)가 다름

I/O Subsystem

  • OS의 목적 중 하나는 하드웨어 장치의 특성을 사용자에게 숨기는 것
  • I/O 서브시스템은 다음을 담당
    • 버퍼링(데이터가 전송되는 동안 일시적으로 저장), 캐싱(성능을 위해 데이터 일부를 더 빠른 저장소에 저장), 스풀링(한 작업의 출력과 다른 작업의 입력 중첩)을 포함한 I/O의 메모리 관리
    • 일반 장치 드라이버 인터페이스
    • 특정 하드웨어 장치용 드라이버

Protection and Security

  • 보호: OS에서 정의한 리소스에 대한 프로세스 또는 사용자의 액세스를 제어하기 위한 모든 메커니즘
  • 보안: 내부 및 외부 공격에 대한 시스템 방어
    • 서비스 거부, 웜, 바이러스, 신원 도용, 서비스 도용 등 광범위한 범위
  • 시스템은 일반적으로 누가 무엇을 할 수 있는지 결정하기 위해 먼저 사용자를 구별
    • 사용자 ID(사용자 ID, 보안 ID)에는 사용자당 하나씩 이름과 관련 번호가 포함
    • 사용자 ID는 해당 사용자의 모든 파일, 프로세스와 연결되어 액세스 제어를 결정
    • 그룹 식별자(그룹 ID)를 사용하면 사용자 집합을 정의하고 관리할 수 있으며 각 프로세스, 파일과 연결할 수도 있음
    • 권한 상승을 통해 사용자는 더 많은 권한을 가진 유효한 ID로 변경할 수 있음
logo

우원 /

안녕하세요👏
우원입니다.
Email
Gihub
안녕하세요. 우원봇입니다.
logo