250x250
기리도
기리도의 개발새발 개발 일지
기리도
전체 방문자
오늘
어제
  • 분류 전체보기 (44)
    • Unity (6)
      • 모듈식 프로그래밍 (1)
    • C# (10)
    • 자료구조,알고리즘 (2)
    • 운영체제 (10)
      • 공룡책 (3)
      • 그림으로 쉽게 배우는 운영체제(인프런 강의) (7)
    • 리팩토링 (1)
    • 네트워크 (13)
      • 네트워크 장비 (13)
    • C, C++ 문법 (1)
      • 기타 (0)
      • C (1)
      • C++ (0)
    • 디자인 패턴 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 개발
  • 알고리즘
  • 네트워크 게임
  • C#
  • 공부
  • 네트워킹
  • 길찾기
  • 유니티
  • 브릿지
  • 통신
  • 인프런
  • Unity
  • OS
  • 스위치
  • 프로그래밍
  • 탄환
  • 게임개발
  • 개발공부
  • 운영체제
  • 네트워크

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
기리도

기리도의 개발새발 개발 일지

2. 운영체제의 개념과 구조
운영체제/공룡책

2. 운영체제의 개념과 구조

2022. 3. 9. 23:55
728x90

  운영체제의 개념과 구조

  A computer system can be divided roughly into four components:
  - the hardware,
  - the operating system,
  - the application programs,
  - user

  운영체제는 어플리케이션과 하드웨어를 연결해 주는 역할을 한다.

 

  운영체제의 정의

  - 운영체제의 보편적인 정의는 없다

  - 흔히  'kernel'이라고 하는, 항상 컴퓨터에서 작동하는 프로그램을 운영체제라고 한다

Kernel: 응용 프로그램이나 주변 장치가 올바르게 작동하도록 통제하고 디스크나 메모리 등의 자원을 배분하거나 응용 프로그램의 실행 등을 처리한다

 

  전통적인 컴퓨터 시스템의 구성 요쇼

  - 하나 이상의 CPU

  - 'bus'를 통해 연결된 여러 개의 장치 제어기(Graphics adapter, USB controller, Disk controller)

Bus: 중앙처리장치와 주기억장치, 입출력장치간에 정보를 전송하는 데 공용으로 사용하는 전기적 통로

  Bootstrap

  - 컴퓨터가 켜질 때 작동되는 프로그램. 디스크에 저장된 운영체제를 메모리에 로드하는 역할을 한다

 

  Interrupts

  - 컴퓨터 작동 중 문제가 발생한 경우라도 업무 처리가 계속될 수 있도록 하는 기능

  - 실행 중인 프로그램을 일시 중단하고 다른 프로그램을 끼워 넣어 실행시키는 것

  

  폰 노이만 아키텍쳐(von Neumann)

  - 명령 레지스터(Instruction register)를 메모리에 로딩하면 CPU가 불러오고 실행하는 구조

명령 레지스터(Instruction register): 중앙 처리기의 제어 부분에 의해 해독되는, 수행 명령어를 가지고 있는 레지스터.

  메모리 계층구조

  - 메모리 계층구조란 메모리를 용량과 속도에 따라 여러 종류로 나눈 것이다

  입출력 구조(I/O Structure)

  입출력 구조를 도식화 하면 다음과 같다. 입출력 구조에서 기억해 둘 것은 데이터를 교환할 때 이용하는 BUS가 같다는 것이다. 따라서 데이터의 양이 적을 때는 문제가 없지만 데이터의 양이 많아지면 대기시간이 발생할 수 있다. 이를 해결하는 방식이 DMA 방식이다.

Cache: 주기억 장치에 읽어들인 명령이나 프로그램들로 채워지는 버퍼 형태의 고속 기억 장치
DMA(Direct memory access): 기억 장치와 주변 장치 간의 데이터 교환 시 중앙 처리 장치(CPU)를 통하지 않는 직접 접속으로 고속 데이터를 전송하는 방식
Thread: 프로세스(process) 내에서 실제로 작업을 수행하는 주체

  컴퓨터 시스템 요소의 정의

CPU(중앙처리장치): 명령을 실행하는 장치
Processor(프로세서): 최소 하나 이상의 CPU를 포함한 물리적인 칩
Core(코어): 각종 연산을 담당하는 CPU의 핵심 요소

  멀티프로그래밍(Multiprogramming)

  - 2개 이상의 프로그램을 주기억장치에 기억시키고, 중앙처리장치를 번갈아 사용하는 처리기법

  - CPU의 효율을 높일 수 있음

  - 멀티프로그래밍을 통해 멀티테스킹을 수행한다

 

  멀티태스킹(Multitasking)

  다수의 작업(Task)을 운영체제의 스케줄링에 의해 번갈아 가며 수행되도록 해주는 것

 

  운영체제의 두 가지 모드

  각 프로그램들이 다른 프로그램의 실행을 방해하거나 프로그램 간에 서로 충돌을 일으키는 문제를 막기 위한 기법. User Mode와 Kernel Mode로 나뉘며, 프로그램이 작동하는 동안 두 가지 모드를 필요에 따라 번갈아가며 실행한다.

User Mode
- 사용자 어플리케이션 코드를 실행
- 시스템 데이터에 제한적으로 접근할 수 있으며 하드웨어에 직접 접근 불가
- 시스템 콜 시 유저 모드에서 커널 모드로 잠시 전환
Kernel Mode
- 모든 시스템 메모리에 접근할 수 있고 모든 종류의 명령을 실행할 수 있다
- 시스템에 중요한 영향을 미치는 연산은 커널 모드에서만 실행함으로써 하드웨어의 보안을 유지

  가상화(Virtualization)

  단일한 물리 하드웨어 시스템에서 여러 시뮬레이션 환경이나 전용 리소스를 생성할 수 있는 기술

  시스템 콜(SystemCall)

  - 응용프로그램이 운영체제에 특정 기능을 수행해 달라고 하는 수단  - CLI와 GUI, Touch-Screen Interface이 있다  - OS의 API라고 볼 수 있다

728x90

'운영체제 > 공룡책' 카테고리의 다른 글

3. 프로세스의 이해  (0) 2022.03.15
1. 운영체제란 무엇인가  (0) 2022.03.08
    '운영체제/공룡책' 카테고리의 다른 글
    • 3. 프로세스의 이해
    • 1. 운영체제란 무엇인가
    기리도
    기리도
    공부한 내용을 정리해서 올리는 블로그입니다.

    티스토리툴바