Chapter 1 서론 - Operating System Concepts(공룡책)

이태혁·2020년 9월 26일
0
post-custom-banner

🦁시스템 관점에서의 운영체제

  • 자원 할당자(resource allocator)
  • 제어 프로그램(control program)
    • 여러가지 입출력 장치와 사용자 프로그램을 제어함

🦁운영체제의 구성 요소

  • 커널
  • 시스템 실행 중에 시스템을 관리하는데 도움이 되는 시스템 프로그램
    • 운영체제와 관련있지만 반드시 커널의 일부일 필요는 없음
  • 응용 프로그램 개발을 쉽게 하고 기능을 제공하는 미들웨어 프레임워크

🦁미들웨어

  • 응용 프로그램 개발자에게 추가 서비스를 제공하는 일련의 소프트웨어 프레임워크
  • 예를 들어 iOS, Android 각각에는 데이터베이스, 멀티미디어 및 그래픽을 지원하는 미들웨어와 함께 핵심 커널이 포함되어 있다.

🦁 버스

  • 현대의 범용 컴퓨터 시스템은 하나 이상의 CPU와 구성요소와 공유 메모리 사이의 액세스를 제공하는 공통 버스를 통해 연결된 여러 장치 컨트롤러로 구성된다.

🦁 인터럽트

  • CPU는 인터럽트 요청 라인(interrupt request line)을 통해 컨트롤러가 보낸 인터럽트 신호를 감지한다.
  • CPU는 하나의 명령어 실행을 끝내면 인터럽트 발생 여부 확인

🦁 저장장치 구조

  • 레지스터
  • 메인 메모리 = RAM(random-access memory)
  • 메인 메모리는 DRAM(dynamic random-access memory)라 불리는 반도체 기술로 구현됨
  • 보조저장장치
    • 하드디스크 드라이브
    • 비휘발성 메모리(NVM:Non-volatile memory)
      • 일반적으로 하드디스크보다 빠름
      • 모바일 장치에서 플래시 메모리로 쓰임

🦁 저장장치 분류

  • 휘발성 -> 메모리
  • 비휘발성 -> NVS(보통 보조저장장치를 가리킴)
    보조저장장치는 다음 2개로 또 나뉨
    • 기계적 -> HDD, CD등
    • 전기적-> 플래시 메모리, FRAM, NRAM, SSD

🦁 입출력 구조

  • 인터럽트 구동 I/O 형태
    • 소량의 데이터 이동하는데 좋음
    • NVS I/O와 같은 대량 데이터 이동에는 오버헤드를 유발할 수 있음
      • 이때 DMA(직접 메모리 액세스)가 사용됨
  • DMA 방식
    • 먼저 장치에서 메모리 혹은 그 반대로 데이터 블록 전체를 전송한다.
    • 블록 전송이 완료될 때마다 인터럽트를 발생시킨다.

🦁 멀티프로세서, 멀티코어

  • 멀티프로세서 = CPU칩 여러개
    • 여러 프로세서가 협력하기 어려워서 SMP(symmetric multiprocessing)을 사용함
  • 멀티 코어 = 한 CPU칩에 코어가 여러개
    • 칩간 통신보다 칩내 통신이 빨라서 효율적임
    • 여러칩을 쓰는것보다 전력효율에 좋음
    • 한 칩(프로세서)내의 코어별로 자체 레지스터 세트와 레벨1(L1) 캐시라는 자체 로컬 캐시가 있음
    • 레벨2 (L2) 캐시는 칩에 국한되지만 두 처리 코어를 공유함

위 내용 용어 정리

  • CPU : 명령을 실행하는 하드웨어
  • 프로세서(processor) : 하나 이상의 CPU를 포함하는 물리적 .
  • 코어(core) : CPU의 기본 계산 단위
  • 다중 코어(multicore) : 동일한 CPU에 여러 컴퓨팅 코어를 포함함.
  • 다중 처리기(multiprocessor) : 여러 프로세서를 포함함

🦁 멀티프로그래밍, 멀티태스킹

  • 멀티 프로그래밍: CPU가 항상 한 개는 실행할 수 있도록 프로그램을 구성하여 CPU 이용률을 높임
  • 프로세스 : 멀티 프로그램 시스템에서 실행 중인 프로그램
  • 멀티 태스킹: 멀티 프로그래밍의 논리적 확장(?)

🦁 모드 비트

  • 운영체제는 악의적인 수정 방지를 위해 운영체제 코드인지 사용자코드인지 식별가능 해야한다.

  • 이를 사용자 모드와 커널모드(=수퍼바이저 모드=시스템 모드=특권모드)

  • 모드 비트

    • 모드 비트가 0이면 커널 모드
    • 모드 비트가 1이면 사용자 모드
  • 운영체제별로 모드가 여러가지 이지만 보통 커널모드와 사용자모드를 포함한다.

  • 시스템 콜

    사용자 응용이 운영체제로부터 서비스를 요청하면(시스템 콜을 통함)이 요청을 수행하기 위해서느 ㄴ사용자 모드에서 커널 모드로 전황해야 한다.

🦁 프로그램과 프로세스

  • 실행중인 프로그램 = 프로세스
    • 컴파일러 프로그램, 문서편집 프로그램, 스마트폰의 소셜미디어 앱 은 전부 프로세스이다.
  • 프로세스는 디스크에 저장된 파일의 내용과 같이 수동적 개체
  • 프로세스
    • 다음 수행할 명령을 지정하는 프로그램 카운터(Program Counter)를 가진 능동적 개체
    • 한 프로세스의 수행은 반드시 순차적

🦁

폰노이만 방식의 컴퓨터??

자원관리자로써의 운영체제

  • CPU관리
    1. 사용자 프로세스와 시스템 프로세스의 생성과 제거
    2. CPU에 프로세스와 스레드 스케줄하기
    3. 프로세스의 일시 중지와 재수행
    4. 프로세스 동기화를 위한 기법 제공
    5. 프로세 스 통신을 위한 기법 제공
  • 메모리 관리
    1. 메모리의 어느 부분이 현재 사용되고 있으며 어느 프로세스에 의해 시용되고 있는지
      를추적해야한다.
    2. 필요에 따라 메모리 공간을 할당하고 회수해야 한다.
    3. 어떤 프로세스(또는 그 일부)들을 메모리에 적재하고 제거할 것인기를 결정해야
      한다.
  • 파일 시스템 관리
    1. 파일의생성 및제거
    2. 디렉터리 생성 및 제거
    3. 파일과디렉터리를조작하기 위한프리미티브의 제공
    4. 파일을 보조저장장치로 매핑
    5. 안정적인(비휘발성) 저장 매체에 파일을 백업

🦁 각종 저장장치

레지스터와 캐시도 저장장치인듯

profile
back-end, cloud, docker, web의 관심이 있는 예비개발자입니다.
post-custom-banner

0개의 댓글