본문 바로가기
Computer Science/OS

직무면접을 위한 공룡책 OS ch.1

by 수제햄버거 2020. 10. 28.
728x90
반응형

Operating System(OS)

  • 컴퓨터 하드웨어를 관리하고 , 소프트웨어와 하드웨어, 사용자를 매개하는 프로그램

운영체제의 역할

  • 사용자 관점(User View 와 System View)
    • User View 사용자가 컴퓨터를 쉽게 이용할 수 있도록 만듬
    • System View 자원 할당자(Resource allocator)로서 컴퓨터의 자원들을 관리하는 제어 프로그램으로 동작

부트스트랩 프로그램

  • 초기화 프로그램, 컴퓨터의 ROM, EEPROM에 저장되어 있으며 펌웨어(Firmware)라고 불린다.
  • 시스템을 초기화 하고 부트로더(Boot loader)를 실행하며 부트로더가 운영체제를 실행한다.

인터럽트(Interrupt)

  • 컴퓨터에서 신호를 보내 이벤트 발생을 알리는 것을 의미함
  • 소프트웨어에 의해 발생하는 인터럽트를 트랩(Trap)이라 함
  • 하드웨어 : 시스템 버스(system bus)를 통해 cpu에 신호를 보냄 소프트웨어 : 시스템 콜(system call) 명령을 통해 발생
  • 인터럽트 주도적 : 인터럽트가 발생하기 전까지 CPU는 대기상태 폴링(Polling) : 주기적으로 이벤트를 감시해 처리 루틴을 실행 → 컴퓨팅 자원을 낭비하게 됨

Storage Structure

  • 휘발성 장치 : RAM(메인 메모리), 주기억장치, 캐시, 레지스터 비휘발성 : 보조기억장치, 자기테이프,디스크,SSD 등
  • 보조기억장치는 용량크고 저렴, 주기억장치는 비싸고 용량 작음

DMA(Direct Memory Access)

  • 장치와 메모리를 직접 연결하는 방식, 버스가 지원하는 기능
  • 기존엔 데이터 → CPU → 메모리 : 자원 소모가 많음 DMA를 이용할 경우 데이터 → 컨트롤러 : 직접 메모리에 전달되며 데이터 이동에 대한 인터럽트 1번만 필요, CPU의 할 일이 줄어들어 성능이 좋아짐

Computer System Architecture

  • 폰노이만 구조
    • 데이터 메모리와 프로그램 메모리가 구분되어 있지 않음(하나의 버스)
    • CPU는 메모리로 부터 명령을 읽고, 메모리로부터 데이터 읽기쓰기 다 하는데 신호버스가 1개 이기 때문에 동시 접근이 불가능
    • 메모리 값을 읽고 쓰는 구조라서 명령과 데이터에 접근할때 병목현상 발생

  • 하버드 아키텍처
    • 폰노이만 구조와 다르게 명령용 버스와 데이터용 버스가 물리적으로 분할되어있음
    • 때문에 데이터 읽는거 명령 읽는거 동시에 작동 가능
    • 처리속도를 높이기 위해 많은 전기 회로가 필요하게 됨 → 수정된 하버드 구조 도입(통합 캐시 메모리를 분리, load와 store 명령어를 동시에 실행할 수 있도록 해줌)

       

Processor System

  • Single - : 하나의 메인 CPU만 탑재, 이후 장치에 따라 특별한 목적을 가진 프로세서를 넣음
  • Mulit - : 2개 이상의 프로세서를 가짐
    • 장점 경제성 증가/신뢰성 증가/처리량 증가
    • 비대칭 vs 대칭 비대칭 : 보스 프로세서가 시스템을 제어하고 나머지는 지시를 받아 움직임 → 효율적으로 부하 분산 할 수 있지만 보스 프로세서가 멈추면 전부 멈 대칭 : 자유로운 회사 → 모든 프로세서가 하나의 메모리를 공유하고 동일한 작업을 병렬적으로 수행 , 프로세서의 문제가 생기면 수행하던 작업을 다른 프로세서들에게 나눠주고 문제가 생긴 프로세서만 재부팅

Multiprogramming

  • 여러 프로그램을 메모리에 로드해 두고 한 프로세스가 대기 상태가 되면 다른 프로세스 작업을 수행하는 시스템
  • Disk 에 있으면 프로그램, 메인 메모리에 있으면 프로세스

Time sharing(시분할)

  • 멀티 태스킹(multi tasking)
  • 프로세스 마다 작업시간을 정해두고 번갈아가면서 작업하는 방식 → 반응 시간을 줄이므로서 사용자는 동시에 작동하는 거 처럼 보이게 된다.

⇒ 시분할과 멀티프로그래밍 시스템은 여러작업을 동시에 메모리에 올리는 방식이기 때문에 효율적으로 작업을 처리해야 한다. 이를 CPU스케쥴링이라고 한다. (추후에 언급될 내용이다)

Caching

  • 캐싱 메모리를 사용하여 컴퓨터의 속도를 높이는 기술
  • 파일의 중복성이 증가하지만 속도도 증가한다.
  • 지역성(Locality)의 원리 이용 지역성은 시간과 공간으로 나뉨 시간 : 한번 접근한 데이터에 다시 접근할 확률이 높다. 공간 : 특정 데이터와 가까운 메모리 주소에 있는 다른 데이터들에도 접근할 가능성이 높음

 

Keyword Review:

OS의 정의 /
OS의 역할 /
부트스트랩와 부트로더/
인터럽트 /
DMA /
컴퓨터 구조 /
프로세서 시스템 /
멀티프로그래밍과 시분할 시스템/
캐싱

 

 

 

 

 

 

 

출처 : parksb.github.io/article/5.html

 

🦕 공룡책으로 정리하는 운영체제 Ch.1

Overview

parksb.github.io

폰노이만 구조 사진 : m.blog.naver.com/with_msip/221981730449

 

컴퓨터의 구조는 어떻게 생겼을까? 폰 노이만 구조

현대인이라면 누구나 컴퓨터와 스마트폰을 사용합니다. 그중 컴퓨터는 단순 사무 작업 뿐 아니라 학습과 오...

blog.naver.com

하버드 구조 사진 : sangcho.tistory.com/entry/%ED%8F%B0-%EB%85%B8%EC%9D%B4%EB%A7%8C-%EA%B5%AC%EC%A1%B0-vs-%ED%95%98%EB%B2%84%EB%93%9C-%EA%B5%AC%EC%A1%B0

반응형

'Computer Science > OS' 카테고리의 다른 글

Python Programming 요약  (0) 2022.06.09
직무면접을 위한 공룡책 OS ch.4  (0) 2020.11.10
직무면접을 위한 공룡책 OS ch.3  (0) 2020.10.29