운영체제 강의 - 운영체제란?

이진호·2022년 5월 20일
0

운영체제 이론

목록 보기
1/9

운영체제(OS)란?

하드웨어를 효율적으로 관리해서 사용자 혹은 응용 프로그램에게 서비스를 제공하는 역할을 수행하는 소프트웨어

컴퓨터 하드웨어

  • 프로세서(연산)
    - CPU
    - 그래픽카드(GPU)
    - 응용 전용 처리장치 등

  • 메모리(저장)
    - 주 기억장치
    - 보조 기억장치 등

  • 주변장치(입력, 출력, 네트워크 장치 등)
    - 키보드/마우스
    - 프린트
    - 네트워크 모뎀 등

프로세서(Processor)

  • 컴퓨터의 두뇌(중앙처리장치)로서 연산 및 컴퓨터의 모든 장치의 동작을 제어함.

레지스터(Resister)

  • 프로세서 내부에 있는 메모리
    - 프로세서가 사용할 데이터 저장
    - 컴퓨터에서 가장 빠른 메모리
  • 레지스터의 종류
    - 용도에 따른 분류(전용 레지스터, 범용 레지스터)
    - 사용자가 정보 변경 가능 여부에 따른 분류(사용자 가시 레지스터, 사용자 불가시 레지스터)
    - 저장하는 정보의 종류에 따른 분류(데이터 레지스터, 주소 레지스터, 상태 레지스터)

프로세서의 동작

다양한 레지스터들을 통해 연산이 이루어짐.

운영체제와 프로세서

  • 프로세서에게 처리할 작업 할당 및 관리(프로세스 생성 및 관리)
  • 프로그램의 프로세서 사용 제어(프로그램의 프로세서 사용 시간 관리, 복수 프로그램간 사용 시간 조율 등)

메모리(Memory)

  • 데이터를 저장하는 장치(기억장치)
    - 프로그램(os, 사용자sw 등), 사용자 데이터 등

  • 메모리의 종류

  • 주기억 장치(Main memory)
    - 프로세서가 수행할 프로그램과 데이터 저장
    - DRAM을 주로 사용

    • 디스크 입출력 병목현상(I/O bottleneck) 해소

  • 캐시
    - 프로세서 내부에 있는 메모리(L1, L2 캐시 등)
    - 메인 메모리의 입출력 병목현상 해소
    • 일반적으로 HW적으로 관리됨
    • 용량이 매우 작지만 지역성(공간적, 지역성)을 통해 효과적으로 사용됨.
    • 지역성은 캐시 적중률과 밀접하므로 알고리즘 성능 향상을 위한 중요한 요소 중 하나임.

  • 공간 지역성 예시
    2차원 배열을 for문을 통해 메인 메모리의 데이터를 가져온다고 가정했을 때 첫 번째 인자는 캐시 내 영역에 존재하지 않기 때문에 메인 메모리에서 블록 라인(행 방향) 기준으로 올려두게 됨.

따라서, for 문에서 출력을 colunm 기준으로 하게되면 초기에 올려놓은 블록 라인에서 해당 데이터를 찾을 수 없기 때문에 다시 메인 메모리에서 가져와야 함(캐시 미스). 그러므로 행방향으로 출력하는 것이 훨씬 효율적임.

  • 보조기억 장치
    - 프로그램과 데이터를 저장
    - 프로세서가 직접 접근할 수 없음(주 기억장치를 거쳐서 접근)
    - 용량이 크고, 가격이 저렴함.

메모리 할당 및 관리

  • 프로그램의 요청에 따른 메모리 할당 및 회수
  • 할당된 메모리 관리

가상 메모리 관리

  • 가상메모리 생성 및 관리
  • 논리주소 -> 물리주소 변환

시스템 버스(System Bus)

  • 하드웨어들이 데이터 및 신호를 주고 받는 물리적인 통로

  • 데이터 버스: 프로세서와 메인 메모리, 주변장치 사이에서 데이터를 전송한다. 데이터 버스를 구성하는 배선 수는 프로세서가 한 번에 전송할 수 있는 비트 수를 결정하는데, 이를 워드라고 함.
  • 주소 버스: 프로세서가 시스템의 구성 요소를 식별하는 주소 정보를 전송함. 주소 버스를 구성하는 배선 수는 프로세서와 접속할 수 있는 메인 메모리의 최대 용량을 결정함
  • 제어 버스: 프로세서가 시스템의 구성 요소를 제어하는데 사용한다. 제어 신호로 연산장치의 연상 종류와 메인 메모리의 읽거나 쓰기 동작을 결정함

주변장치와 운영 체제

장치드라이버

  • 어떤 하드웨어를 사용하기 위한 인터페이스
  • 장치를 만드는 쪽에서 장치들을 편하게 사용하기 위해 인터페이스를 제공하게 되고, OS는 얘를 통해서

인터럽트(Interrupt) 처리

  • 주변 장치의 요청 처리
  • 디스크 공간 관리
  • 입력이 들어왔을 때 입력이 들어왔다고 알려주는 것

운영 체제의 역할

  1. User Interface(편리성)
    • CUI, GUI, EUCI
  2. Resource management(효율성)
    • HW resource(processor, memory, I/O devices, etc)
    • SW resource(file, application, message, signal, etc)
  3. Process and Thread management
  4. System management(시스템 보호)

컴퓨터 시스템의 구성

  • 사용자가 kernel에 직접 접근해서 조작해버리면 OS가 하드웨어를 제어하는데 문제가 있을 수 있기 때문에 필요한 기능이 있으면 커널에 요청을 해야하는데 이 때, 통로가 system call interface

  • system call interface: 커널이 제공하는 기능들 중에서 사용자가 사용할 수 있는 기능들을 모아놓은 것들(=시스템 라이브러리)

운영 체제의 구분

  1. 동시 사용자 수
    • Single-user system
    • Multi-user system
  2. 동시 실행 프로세스 수
    • Single-tasking system
    • Multi-tasking system
  3. 작업 수행 방식 (사용자가 느끼는 사용 환경)
    • Batch processing system
    • Time-sharing system
    • Distributed processing system
    • Real-time system

운영체제의 구조

  • 커널(kernel)
    - os의 핵심 부분(메모리 상주)
    - 가장 빈번하게 사용되는 기능들 담당

  • 유틸리티(Utility)
    - 비상주 프로그램

    • UI 등 서비스 프로그램

운영체제의 기능

프로세스 관리

  1. 프로세스(Process)
    • 커널에 등록된 실행 단위 (실행 중인 프로그램)
    • 사용자 요청/프로그램의 수행 주체(entity)
  2. OS의 프로세스 관리 기능
    • 생성/삭제, 상태관리
    • 자원 할당
    • 프로세스 간 통신 및 동기화
    • 교착상태(deadlock) 해결 - 여러개의 프로세스가 동일한 자원을 사용하려 할 때
  3. 프로세스 정보 관리
    • PCB

프로세서 관리

  1. 중앙 처리 장치(CPU)
    • 프로그램을 실행하는 핵심 자원
  2. 프로세스 스케줄링
    • 시스템 내의 프로세스 처리 순서 결정
  3. 프로세서 할당 관리
    • 프로세스들에 대한 프로세서 할당 - 한번에 하나의 프로세스만 사용 가능

메모리 관리

  1. 주 기억 장치 - 작업을 위한 프로그램 및 데이터를 올려 놓는 공간
  2. Multi-user, Multi-tasking 시스템
    • 프로세스에 대한 메모리 할당 및 회수
    • 메모리 여유 공간 관리
    • 각 프로세스의 할당 메모리 영역 접근 보호
  3. 메모리 할당 방법(scheme)
    • 전체 적재
    • 일부 적재(virtual memory concept)
      - 프로그램 및 데이터의 일부만 적재
      • 장점: 메모리의 효율적 활용 / 단점: 보조기억 장치 접근 필요

파일 관리

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

I/O 관리

  • 입출력(I/O) 과정
    - os를 반드시 거쳐야 함

reference
https://www.youtube.com/channel/UCHvXywxOtwLedY5OX-Teg5w

0개의 댓글