[운영체제]1. 운영체제 소개

sai06266·2023년 8월 30일
0

운영체제

목록 보기
1/8

3-1학기에 들었던 운영체제 수업 내용을 복습하는 겸 정리해보려고 한다.

운영체제란?

Operating System, 즉 OS는 application과 컴퓨터 하드웨어 사이의 중개인처럼 행동한다.
컴퓨터 하드웨어 자원을 관리하고, application에 자원을 제공한다.

사용자의 측면

  • OS는 application을 실행한다.
  • OS는 컴퓨터 시스템을 사용하기 편리하게 만들어준다.

시스템의 측면

  • OS는 자원 할당자이다.
  • 하드웨어 자원: CPU, 메모리, I/O 장치
  • 스프트웨어 자원: 파일, 소켓 등등
  • OS는 control program이다.
    - application의 실행과 I/O 장치의 작업을 컨트롤 한다.

운영체제는 크게 인터페이스와 커널로 나뉜다.

인터페이스 (Interface): 사용자와 컴퓨터 시스템 간의 상호 작용을 돕는 역할을 한다. 사용자가 컴퓨터 리소스를 관리하고 프로그램을 실행하는 등의 작업을 보다 쉽게 수행할 수 있도록 도와준다. 인터페이스는 크게 두 가지 유형으로 나뉩니다.

  • Command-Line Interface (CLI): 명령 줄 인터페이스로, 사용자가 텍스트 명령어를 입력하여 시스템과 상호 작용하는 방식이다. 예를 들어, Windows의 Command Prompt나 Unix/Linux의 터미널이 CLI이다.
  • Graphical User Interface (GUI): 그래픽 사용자 인터페이스로, 사용자가 마우스 클릭, 드래그 등을 통해 그래픽 요소를 조작하여 시스템과 상호 작용하는 방식이다. 대부분의 현대 운영체제는 GUI를 제공하며, Windows의 Windows Explorer나 macOS의 Finder가 GUI이다.

커널 (Kernel): 운영체제의 핵심으로, 하드웨어와 소프트웨어 사이의 상호 작용을 관리하고 시스템 리소스를 효율적으로 관리한다. 커널은 시스템의 핵심 기능을 제공하며, 프로세스 관리, 메모리 관리, 파일 시스템 관리 등의 역할을 수행한다. 커널은 보통 사용자가 직접 접근하는 것이 아니며, 시스템의 안정성과 성능을 보장하기 위해 중요한 역할을 한다.


Computer System Operation 컴퓨터 시스템 연산

컴퓨터 시스템 구성

  • 각각의 I/O 장치 컨트롤러는 특정 장치 유형을 담당한다.
  • 각각의 I/O 장치 컨트롤러는 버퍼를 가진다.
  • Disk 컨트롤러는 장치와 장치 컨트롤러의 버퍼 사이에서 데이터를 전달한다.
  • CPU는 메인 메모리와 장치 컨트롤러의 버퍼 사이에서 데이터를 전달한다.

버퍼를 사용하는 이유?

  • 수신자와 송신자의 데이터 스트링 속도가 잘 맞지 않는 경우
    -> 파일을 저장하는 네트워크가 느릴 때, 버퍼에 데이터를 저장하고 어느 정도 저장되었을 때 디스크에 쓰기 시작함.
  • 데이터 전송 크기가 맞지 않는 경우
    -> 보내는 쪽에서 큰 데이터를 작은 네트워크 패킷으로 쪼갠 후에 send buffer에 저장함.

Interrupt handling

인터럽트는 CPU가 프로그램을 실행하고 있을 때, 예외상황이 발생하여 처리가 필요한 경우에 현재 하던 일을 중단하고 발생된 일을 처리한 후 원래 일로 복귀하는 것을 말한다.

인터럽트 발생 과정

인터럽트 요청 발생
1. 프로그램 수행 중단(현재 수행 중인 명령의 수행이 완료된 시점에서 중단)
2. PC에 기억되어 있는 주소를 안전한 곳에 기억시켜서 보존
3. 인터럽트 전처리 실행(원인 판단, 처리 루틴 호출)
4. 인터럽트 처리 루틴 수행
5. 기억시켰던 주소로 돌아와 계속 수행


Storage Structure

메인 메모리

  • CPU가 직접적으로 접근할 수 있는 저장 공간
  • ex) DRAM(휘발성 -> 보존X)

보조 기억 장치

  • 크고 비휘발성의 저장 공간
  • HDD, NAND flash memory, SSD

Caching 캐싱

캐싱이란?

명령어와 데이터를 캐시 기억 장치 또는 디스크 캐시에 일시적으로 저장하는 것. 캐싱은 중앙 처리 장치(CPU)가 명령어와 데이터를 주기억 장치 또는 디스크로부터 읽어 오거나 데이터를 주기억 장치 또는 디스크에 기록하는 것보다 몇 배 빠른 속도 또는 CPU의 속도에 가깝게 단축시킴으로써 컴퓨터의 성능을 향상시키기 위한 방법이다.

캐싱된 데이터는 더 조심히 다뤄져야한다.
데이터의 복사본이 여러 개가 존재할 수 있다. -> 데이터 불일치(하나만 바뀌고 나머지는 안바뀔 때)
특히 멀티프로세서 환경(CPU가 여러 개인 환경)에서 더 복잡하다.
Cache coherency(캐시 일치)가 중요하다.

Operating System Structure

Multiprogramming

  • 여러 프로그램이 메인 메모리에 동시에 있으면 cpu는 다중화된다 -> cpu 사용률 증가
  • 하나의 프로그램은 cpu와 I/O 장치를 동시에 유지할 수 없다
  • cpu는 한번에 하나의 프로그램만 실행할 수 있다.
  • 하나의 프로그램이 선택되면 스케줄링을 통해 실행된다.

Timesharing

  • Timesharing은 멀티프로그래밍의 연장선이다.
  • UNIX가 좋은 예시이다.
  • 유저가 키보드나 마우스를 통해 명령을 전달하고, 즉각의 결과를 기다리는 것
    ->반응 시간은 짧아야한다.
  • cpu는 프로그램을 빈번하게 바꿔서 유저가 각각의 프로그램과 상호작용할 수 있도록한다.
    -> 반응 시간을 최소화

Operating System Operations

OS는 이벤트 중심이다.
-> 프로그램이 없으면, I/O 요청도 없고 사용자도 없다.
-> os는 이벤트가 일어나기를 기다리고 있다.

Event란?

  • Hardware interrupts
    • Disk 인터럽트, keyboard 인터럽트, mouse 인터럽트 등등
  • Software trap
    • divide by zero, 허용되지 않은 메모리 접근, 시스템 콜 등등
  • Other errors
    • 무한 루프

Dual mode

  • User mode/Kernel mode
  • 커널모드에서 privileged 명령어를 실행할 수 있다.
  • 유저모드에서 일반적인 명령어를 실행할 수 있다.
  • user mode bit = 1/kernel mode bit = 0

Process Management

  • 프로세스는 실행 중인 프로그램이다.(프로그램을 실행하면 프로세스)
  • 프로세스는 시스템이 하는 일의 단위이다.
  • 프로세스는 일을 수행하기 위해서 자원을 필요로 한다.
    • cpu, 메모리, I/O 장치들, 파일 등등
  • 프로세스 관리 활동
    • cpu에서 프로세스를 스케줄ㄹ링하기
    • 프로세스 생성, 삭제
    • 프로세스 동기화 메커니즘
    • 프로세스간 상호작용 메커니즘
    • 교착상태 관리

Memory Management

  • 메모리 관리 활동
    • 메모리의 부분들이 누구에 의해 쓰여지고 있는지 추적
    • 어떤 프로세스와 데이터를 넣을지, 내보낼지 결정
    • 메모리 공간을 필요한만큼 할당하고 할당을 해제
  • 가상 메모리 시스템
    • 가상화된 다양한 형태의 데이터 저장소로, 프로그램이 마치 하나의 종류의 메모리만 있는 것처럼 디자인될 수 있게 한다. 이것이 가상 메모리

Storage Management

  • 운영체제는 정보저장에 대해 일관된 논리적 관점을 제공한다.
    • File
      • 논리적 저장 단위
      • 여러 파일들이 모여 디렉토리를 만든다.
    • File system
      • 데이터를 저장, 검색, 업데이트하고 장치에서 사용가능한 공간을 관리하는 방법이다.
  • 파일 시스템 활동
    • 파일과 디렉토리를 만들고 삭제한다.
    • 파일과 디렉터리를 조작하는 데 필요한 기본 기능을 지원한다.
    • 보조 저장장치에 파일들을 매핑한다.
  • 대량 저장장치 관리(mass-storage)
    • 주로 디스크(disk)가 데이터를 저장하기 위해 사용된다.
    • 컴퓨터 실행의 전체 속도는 disk subsystem과 그것의 알고리즘에 의해 결정된다.
  • 디스크 저장 활동
    • free-space management 빈공간 관리
    • 저장공간 할당
    • 디스크 스케줄링

I/O Subsystem 입출력 서브시스템

  • 운영체제의 하나의 목적은 유저로부터 하드웨어 장치의 특징을 숨기는 것이다.
  • I/O subsystem은 포함한다.
    • 일반적인 장치-드라이버 인터페이스

    • 특정 하드웨어 장치들을 위한 드라이버

    • 입출력 관련 메모리 관리

      • 버퍼링
      • 캐싱
      • 스풀링

Special purpose system

Real time system

  • ex) 미사일 컨트롤 시스템, 의학 장비 시스템
  • 엄격한 응답시간을 요구하는 시스템 -> Deadline
  • Soft - 적은 피해 / Hard - 막대한 피해

Multimedia systems

  • mp3, dvd
  • soft real-time이 요구됨.

Mobile systems

  • 핸드폰

Virtual Machines

가상 머신

  • 다른 실행 환경에서 하나의 컴퓨터를 추출한다.
  • 각각의 나눠진 환경이 각자의 컴퓨터를 사용한다는 착각을 하게 만듬.
  • 하드웨어와 커널을 모든 하드웨어인 것처럼 다룸.

    가상 머신의 특징
  • 시스템 자원의 완벽한 보호를 제공한다.
  • 직접적인 자원의 공유는 없다.
  • 운영체제를 발달시키기 편리하다.
  • 하나의 어플리케이션을 다른 운영체제에서 테스트해보기 편리하다.

Open-Source Operating Systems

예시로는 리눅스가 있음.

0개의 댓글