Introduction & O/S structures

윤성민·2021년 5월 23일
0

운영체제는 무엇인가?

  • 운영체제의 정의
    • 항상 컴퓨터에서 실행되는 프로그램.
    • 보통 커널을 의미한다.
  • 커널과 함께 두가지 다른 프로그램이 존재한다.
    • 시스템 프로그램
    • 애플리케이션 프로그램

컴퓨터 시스템 분류

  • 전통적인 컴퓨터 시스템은
    • 1개 또는 그 이상의 CPU,
    • 버스를 통해 여러개의 장치 컨트롤러와 연결되어 있다.

  • 부트스트랩 프로그램
    • 컴퓨터에 전원이 들어왔을 때, 실행되는 프로그램.
    • 하드디스크에 있는 운영체제를 메모리에 로딩한다.

  • 인터럽트
    • 하드웨어가 언제든 인터럽트를 발생시킬 수 있다.
      • 시스템 버스를 통해 CPU에게 신호를 전달한다.

  • 계층에 따라 저장 시스템을 분류할 수 있다.

    • 저장 용량

    • 접근 속도

  • I/O 구조

    • I/O를 관리하는 코드가 OS 코드 에서 많은 부분을 차지한다.

컴퓨터 시스템 아키텍쳐

  • 컴퓨터 시스템 구성 요소의 정의

    • CPU - 명령을 실행하는 하드웨어.
    • 프로세서 - 하나 이상의 CPU를 포함하는 물리적인 칩.
    • 코어 - CPU의 계산을 담당하는 단위.
    • 멀티코어 - CPU에 여러 코어를 통칭.
    • 멀티 프로세서 - 다중 프로세서를 포함.
  • Symmetric multiprocessing (SMP)

  • 하나의 메모리에 여러개의 CPU가 연결되어 있는 방식.

  • Multi-core design
    • 하나의 칩안에 여러개의 코어가 장착되어 있다.

  • 멀티프로그래밍

    • 여러개의 프로그램을 동시에 메모리에 로드해서 실행한다.
    • CPU의 효율이 높아진다.
  • 멀티태스킹 (= 멀티프로세싱)

    • 멀티프로그래밍의 논리적 표현.
      • CPU가 작업을 자주 전환하는 경우, 각 작업이 실행되는 동안 사용자가 각각의 프로그램을 사용할 수 있다.
    • CPU 스케쥴링
      • 동시에 여러 프로세스가 실행되는 경우, 다음 프로세스를 선택하는 방법.
  • 운영체제의 2가지 모드

    • user mode, kernel mode
    • 옳지 않는 프로그램으로부터 잘못된 동작을 보호하기 위해 모드를 분리함.
    • system call 수행 과정
      • user mode에서 system call을 호출
      • trap이 발생하여 kernel mode로 진입
      • kernel mode에서 system call 실행.
      • return-from-trap 발생하여 user mode로 진입.
      • system call 결과물을 확인.

가상화

  • 가상화
    • CPU가 여러개의 프로그램을 메모리에 올리고 시분할을 통해 처리하듯이, 하드웨어에 여러개의 OS를 올려 각기 다른 환경으로 분리하는 것.
    • VMM : Virtual Machine Manager
      • VMware, XEN, WSL, and so on

컴퓨팅 환경

  • 운영체제에서 다양한 컴퓨터 환경
    • 전통적인 컴퓨팅
    • 모바일 컴퓨팅
    • 클라이언트-서버 컴퓨팅
    • Peer-to-Peer 컴퓨팅(BitTorrent)
    • Cloud 컴퓨팅
    • Real-Time Embedded Systems(RTOS)

운영체제 서비스

  • 운영체제는 프로그램의 실행 환경을 제공한다.
    • User interface
    • Program execution
    • I/O operation
    • File-system manipulation
    • Communications
    • Error detection
    • Resource allocation
    • Logging
    • Protection and security

사용자와 운영체제 인터페이스

  • 사용자가 OS와 상호 작용할 수 있는 세 가지 방법
    • CLI : Command Line Interface. 줄 단위의 명령을 읽고 상호작용.
      • sh, bash, csh, tcsh, zsh 등이 있다.
    • GUI : Graphical User Interface.
      • Windows, Aqua for MacOS, KDE/GNOME for Linux 등등..
    • Touch-Screen Interface
      • Android UI, Iphone UI

System Call

  • System call
    • 운영체제가 제공하는 서비스를 이용하기 위해 제공하는 인터페이스.
    • API : Application Programming Interface

  • Windows, Unix의 시스템 콜 예시

출처

운영체제 공룡책 강의를 보고 정리

profile
기록은 기억보다 강하다.

0개의 댓글