[OS] Operating System 01 - Introduction
2023. 12. 27. 00:46ㆍCS/OS
시작
1학기에 운영체제 수업을 듣기 전에 먼저 운영체제에 대해 예습을 하고 그 과정을 기록하기 위해 시작하였다. 유튜브에 있는 공룡책 강의를 보면서 해당 내용을 정리하면서 배운 내용을 기록하려고 한다.
[OS] Operating System 01 - Introduction
운영체제
- 컴퓨터 내부에서 항상 실행이 된다
- 윈도우, 리눅스, Mac과 같은 소프트웨어
- 응용 프로그램 또는 사용자가 컴퓨터 하드웨어를 편리하고 효율적으로 사용하기 위해 시스템 자원을 관리하고 여러 가지 프로그램이 필요로 하는 공통적인 서비스를 제공하는 역할을 한다.
- 이때 시스템 자원은 메모리, 프로세서 등의 자원을 의미한다.
정보
- 불확실성을 측정하거나 줄이기위해 사용되는 정량적 표현이다
- 정보(I)는 사건의 발생확률 P(x)에 반비례한다
- 최소단위 : bit(binary digit)
- 처리 : 정보의 상태변환을 통해 정보를 처리한다
- 0 <-> 1의 변환
- 부울(boolean) 대수 및 논리 게이트, 회로
- 정보의 저장과 전송 : 플립-플롭, 데이터 버스
컴퓨터
- 실제로 정보를 처리하는 기계
- 데이터를 조작하고 계산, 저장, 검색 및 통신과 같은 다양한 작업 수행
- 방대한 양의 데이터를 고속으로 처리할 수 있어서 워드 프로세싱, 게임, 과학 연구 등을 포함해서 광범위한 응용 프로그램에 사용된다
- 범용성
- NOT, AND, OR 게이트만으로 모든 계산을 진행
- NAND 게이트만으로 모든 계산이 가능
- NOT AND(보편 게이트) : 들어오는 두 개의 입력값이 모두 True면 False을 출력, 그 외의 경우 True를 출력, AND 게이트의 출력을 거꾸로 생각하면 된다.
- 계산가능성
- Turing-computable : 튜링 머신으로 계산가능한 것
- 정지 문제, Halting Problem : 튜링 머신으로 풀 수 없는 문제
- 폰 노이만 컴퓨터 아키텍처
- 현대 컴퓨터 설계의 기반이 되는 구조
- 프로그램을 메모리에 저장하는 구조이며 명령어와 데이터가 같이 메모리에 저장
- 폰 노이만 병목
- 프로세서가 메모리에서 데이터를 가져오는 속도가 프로세서의 처리 속도를 따라가지 못해서 발생하는 현상
- 폰 노이만 병목
- 컴퓨터는 입력과 출력 장치를 통해 외부와 데이터를 주고받는다
- 과정
- 메모리에서 명령어를 패치한다.
- 해당 명령어를 명령어 레지스터에 저장
- 명령어를 디코딩한다
- 연산에 필요한 데이터도 같이 메모리에서 패치되며 레지스터에 저장이 된다.
- 디코딩된 명령어는 실행이 되고 결과는 다시 메모리에 저장이 된다.
- 메모리에서 명령어를 패치한다.
운영체제
- 컴퓨터에서 항상 실행되는 하나의 프로그램이다.
- 커널
- 사용자에게 보이지 않지만 시스템 기능 및 응용 프로그램 실행에 필수적이다.
- 운영체제의 핵심이며 시스템에서 발생하는 모든 것을 완벽하게 제어하는 역할을 한다
- 하드웨어와 소프트웨어 구성 요소 간의 통신과 같은 시스템 자원을 관리한다
- 시스템이 켜져 있으면 커널은 항상 실행이 된다. 다른 프로그램이 실행되지 않더라도 커널은 여전히 활성 상태이며 작업 수행을 위해 대기하고 있다.
- 시스템 프로그램
- 운영체제의 일부이지만 커널의 일부가 아닌 프로그램을 의미한다
- 파일관리, 프로세스 관리, 메모리 관리 및 장치 관리와 같은 시스템 관리 작업을 담당한다
- ex : shell, 파일 관리 도구 및 네트워크 유틸리티를 예로 들 수 있다.
- 응용 프로그램
- 응용 프로그램은 특정 사용자 지향 작업을 수행하는 소프트웨어
- 운영체제에 포함되지는 않지만 커널 및 시스템 프로그램의 지원을 받는다
- ex : 워드 프로세서, 웹 브라우저, 게임 등
버스
- 다양한 컴퓨터 구성 요소 간의 데이터 전송을 담당하는 통신 시스템
- 데이터 버스
- CPU, 메모리, 입출력 장ㅇ치 등 시스템 내의 다양한 구성 요소 사이에 데이터 전송
- 해당 버스의 크기는 한 번에 전송할 수 있는 데이터의 양을 결정
- 주소 버스
- CPU가 메모리 또는 다른 하드웨어 구성 요소의 특정 위치를 지정할 때 사용
- 해당 버스의 크기는 시스템이 접근할 수 있는 메모리 주소의 범위를 결정
- 제어 버스
- CPU가 다른 구성 요소에 제어 신호를 보내는 데 사용
- 메모리 읽기/쓰기, 인터럽트 요청, 버스 요청 및 버스 부여와 같은 다양한 시스템 제어 활동 포함
- 다양한 구성 요소가 서로 동기화하여 효율적으로 작동할 수 있도록 도와주는 역할
- 해당 버스의 속도와 대역폭은 시스템의 전반적인 성능에 영향을 끼침
bootstrap
- 컴퓨터의 전원이 들어오면 가장 먼저 실행이 되는 프로그램
- os를 메모리로 로드하고 실행한다
Interrupt - 인터럽트
- 컴퓨터에서 현재 진행 중인 작업을 일시 중단하고, CPU가 긴급하거나 특별한 작업을 처리할 수 있도록 하는 메커니즘
- system bus를 통해 전달이 된다
- 멀티태스킹 및 하드웨어 관리를 가능하게 하는 기술이다.
- 하드웨어 인터럽트
- 외부 하드웨어 장치로부터 발생, 일반적으로 입출력 연산의 완료, 하드웨어 오류, 사용자의 입력등을 CPU에 알림
- CPU가 다른 작업을 수행하는 도중에도 발생 가능
- 인터럽트 요청(IRQ) 라인을 통해 CPU에 신호 전달
- 소프트웨어 인터럽트
- 소프트웨어 instruction에 의해 발생
- 시스템 호출 및 예외 처리와 같은 상황에서 사용
처리과정
- 인터럽트 발생
- 하드웨어 및 프로그램에서 인터럽트 신호를 CPU에 보냄
- 인터럽트 인식
- 인터럽트를 인식하게 되면 현재 수행 중인 명령어의 실행을 완료하고 현재 상태를 저장(context switching)
- 인터럽트 처리
- 작업 재개
- CPU는 중단된 작업을 원래 상태로 복구하고 실행을 재개한다.
'CS > OS' 카테고리의 다른 글
[OS] Operating System - Thread & Concurrnecy (1) | 2024.01.04 |
---|---|
[OS] Operating System 01 - Introduction 02 (0) | 2023.12.28 |
[Operate System] Thread (0) | 2022.11.18 |
[Operating System] Ostep virtualization - process API (0) | 2022.10.07 |
[Operating System] Ostep virtualization - process (0) | 2022.09.25 |