BlueHarmel
BlueHarmel Devlog
BlueHarmel
전체 방문자
오늘
어제

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (330)
    • Book (11)
    • Dev (29)
      • ArtCon (0)
      • ESTsoft 오르미 (29)
    • Study (290)
      • Web (18)
      • AWS (2)
      • 알고리즘 (1)
      • GameDev (1)
      • 정보처리기사 (201)
      • English (1)
      • Mathematics (24)
      • 머신러닝 (7)
      • 딥러닝 (10)
      • 네트워크 보안 (5)
      • R (4)
      • 컴퓨터 네트워크 (6)
      • 데이터베이스 (8)
      • 데이터 통신 (0)
      • 운영체제 (2)
      • TIL (0)
    • Project (0)
      • 개인 (0)
      • 단체 (0)

인기 글

hELLO · Designed By 정상우.
BlueHarmel

BlueHarmel Devlog

운영체제 1,2 운영체제의 개념과 구조
Study/운영체제

운영체제 1,2 운영체제의 개념과 구조

2023. 11. 23. 19:01

0. 운영체제란?

컴퓨터 시스템을 운영하는 소프트웨어

컴퓨터 : 정보를 처리하는 기계

정보량 : 어떤 사건 X의 정보량은 이사건이 발생한 확률의 마이너스 2로그이다.(클로드 섀넌)

정보 : 불확실성을 측정해서 수치적으로 표현한것

 

컴퓨터가 정보를 처리하는 방법

정보의 최소 단위 : bit (binary digit)

정보의 처리 : 정보의 상태 변환

부울 대수 : NOT, AND, OR

논리게이트 : NOT, AND OR, XOR, NAND, NOR

논리 회로 : IC, LSI, VLSI, ULSI, SoC,...

- 무어의 법칙, 황의 법칙

정보의 저장과 전송 : 플립-플롭, 데이터 버스, 라디오 전파

 

덧셈 : 반가산기 , 전가산기

뺄셈 : 2의 보수 표현법

곱셈과 나눗셈 : 덧셈과 뺄셈의 반복

실수 연산 : 부동 소수점 표현법

함수 : GOTO

삼각함수, 미분, 적분, 사진 촬영, 동영상 재생,....

 

컴퓨터가 만능인가?

  • 범용성 
    • NOT, AND, OR 게이트 만으로 모든 계산을 할 수 있다
    • NAND 게이트 만으로 모든 계산을 할 수 있다
    • 범용 컴퓨터 : general-purpose computer / 소프트웨어가 하고자 하는 모든것을 지원해주는 하드웨어
  • 계산 가능성:
    • Turing-computable : 튜링 머신으로 계산 가능한 것
    • 정지 문제 : 튜링 머신으로 풀 수 없는 문제

컴퓨터의 할아버지 : 앨런 튜링

CPU, RAM, Application Program, Operating System라는 현대적 컴퓨터의 원형을 설계

컴퓨터의 아버지 : 폰노이만

폰노이만 아키텍처

내장형 프로그램 컴퓨터를 설계 : 메모리에 프로그램이 저장된 컴퓨터

Fetch - Excecute 사이클

프로그램이란?

- 컴퓨터의 하드웨어에게 작업을 수행하라고 말하는 명령어들의 집합

 

운영체제란?

- 컴퓨터에서 항상 실행되는 프로그램

- 어플리케이션 프로그램들에게 시스템 서비스들을 제공하기 위해

- 프로세스들, 리소스들, 유저 인터페이즈들, 등등 을 관리하기 위해

 

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

OS는 컴퓨터의 하드웨어를 조종하는 소프트웨어

- Application Program들을 위한 기반을 제공

- 컴퓨터 유저와 하드웨어 간의 매개

 

컴퓨터 시스템의 4가지 구성요소

1. Computer Hardware

2. Operating System

3. Application Programs

4. User

OS의 범용적 정의는 없다.

컴퓨터에서 항상 작동하는 한 프로그램 (Kernel)

두가지 다른 타입의 프로그램들: 

1. System programs

2. Application programs

현대식 컴퓨터는 하나혹은 그 이상의 CPU들과 Common Bus로 연결된 여러 디바이스 컨트롤러로 구성된다

 

Bootstrap : 컴퓨터의 전원을 켜먼 가장 먼저 실행되는 프로그램, OS시스템을 메모리에 로드한다.

Interrupts : 하드웨어는 시스템 Bus를 통해 CPU에 신호를 보냄으로써  인터럽트를 언제든 발생시킨다.

Storage : 비 휘발성 저장장치

I/O : OS코드의 많은 부분은 I/O를 다루는데 할당되어 있다.

DMA : Direct Access Memory

 

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

1. CPU : 지시를 수행하는 하드웨어

2. Processor : 하나 혹은 그 이상의 CPU를 가지고 있는 물리적 칩

3. Core : CPU의 후방계산 유닛

4. Multicore : 같은 CPU에 있는 여러 컴퓨팅 코어들을 포함한다. 

5. Multiprocessor : 여러 프로세서들을 포함한다.

 

멀티 프로그래밍 : 하나이상의 프로그램을 한번에 실행한다

메모리 내에 몇몇 프로세스들을 동시에 유지한다.

CPU 효율을 높일 수 있다.

Multitasking (= multiprocessing) : Concurrency vs Parralalism

multiprogramming의 논리적인 확장

- 어떤 CPU가 작업을 너무 빠르게 전환해서

- 유저들은 각각의 작업들과 그것이 실행되는 동안 상호작용한다고 느끼는 것

CPU scheduling :

만약 몇몇 프로세스들이 동시에 실행될 준비가 되었을경우

시스템은 어떤 프로세스가 다음에 실행될지 정해야 한다.

cpu 효율을 제일 높이는 프로세스을 선택

 

Operation mode:

1. User mode : 커널 모드에게 시스템 콜을 통해 요청

2. Kernel mode : 유저 모드에게 요청받으면 하드웨어를 직접적으로 제어하고 유저모드로 반환해준다.

- 부정확한 프로그램이 다른 프로그램들이 부정확하게 동작하는데 영향을 주지 않도록 막아준다.

Virtualization : 하나의 컴퓨터의 하드웨어를 추상화해 각기 다른 실행 환경으로 나누는게 가능하도록 하는 기술

VMM : Virtual Machine Manager (VMware, XEN, WSL, ...)

컴퓨팅 환경 : 

- 전통적 컴퓨팅

- 모바일 컴퓨팅

- 클라이언트 - 서버 컴퓨팅

- Peer-to-Peer 컴퓨팅

- 클라우드 컴퓨팅

- 실시간 임베디드 시스템

 

2. OS 서비스들

OS는 프로그램들의 실행하기 위한 환경을 제공한다.

1. User Interface

2. Program execution

3. I/O operation

4. File-System manipulation

5. Communication

6. Error detection

7. Resource allocation

8. Logging

9. Protection and Security

OS와 소통하기위해 유저에게 제공되는 3가지 기본적인 방식들

CLI : Command Line Interface, command interpreter (shell | sh,bash,csh,tcsh,zsh,...)

GUI : Graphical User Interface (Windows, Aqua, KDE/GNOME)

Touch-Screen Interface : Android UI, iPhone UI, ...

 

System Calls : 컴퓨터 응용과 os간에 소통 방식 / API : Application Programming Interface

 

저작자표시 비영리 변경금지 (새창열림)

'Study > 운영체제' 카테고리의 다른 글

운영체제 3. 프로세스  (0) 2023.11.27
    BlueHarmel
    BlueHarmel
    Interested in Mathematics, Foreign Language, and "Programming"

    티스토리툴바