이 글은 "쉽게 배우는 운영체제 (조성호 지음)"을 읽고 주관적으로 작성된 글입니다.
※ 요약
- 하드웨어의 구성
- CPU / 메인메모리 / 입력장치 /출력장치 / 저장장치
- 필수장치
- CPU / 메인메모리
- 컴퓨터로 하는 작업은 대부분 CPU와 메인메모리의 협업으로 이루어짐 - 나머지는 주변장치
- 폰노이만 구조
- CPU, 메모리, 입출력장치, 저장장치가 버스로 연결되어 있는 구조
- 모든 프로그램이 메모리에 올라와야 실행 가능
- CPU
- 명령어를 해석하여 실행하는 장치
- 구성
- 산술논리 연산장치
- 제어장치
- 레지스터
- 메모리
- 실행에 필요한 프로그램과 데이터를 저장하는 공간
- 모든 프로그램은 메모리에 올라와야 실행 가능
- 종류
- RAM : 읽기/쓰기 가능
- ROM : 읽기만 가능
- 부팅
- 컴퓨터를 켰을 때 운영체제를 메모리에 올리는 과정
- 부팅 순서
- 컴퓨터 전원을 킴
- 바이오스가 실행되어 하드웨어를 점검
- 이상이 없으면 메모리에 부트스트랩 코드를 올려 실행
- 부트스트랩 코드는 하드디스크의 운영체제를 메모리에 가져와 실행
1. 컴퓨터의 기본 구성
1) 하드웨어의 구성
- CPU / 메인메모리 / 입출력장치 / 저장장치로 구성
- 필수 장치
- CPU / 메인메모리
- 대부분의 작업은 CPU와 메인메모리의 협업으로 이루어짐 - 주변장치
- 입출력장치 / 저장장치
- 필수 장치
- 메인메모리는 전원이 꺼지면 데이터를 잃음
- 따라서 영구적인 데이터 저장을 위해 보조저장장치(저장장치)를 사용
- CPU와 메모리
- CPU
- 명령어를 해석하여 실행하는 장치 - 메모리
- 작업에 필요한 프로그램과 데이터를 저장하는 장치
- 분할 공간마다 주소로 구분
- CPU
- 입출력장치
- 입력장치
- 데이터를 컴퓨터에 입력하는 장치
- 키보드, 마우스, 스캐너, 터치스크린 - 출력장치
- 컴퓨터의 처리 결과를 보여주는 장치
- 모니터, 스피커, 프린터
- 입력장치
- 저장장치
- 메모리보다 느리지만 저렴하고 용량이크며 전원 on/off에 상관없이 데이터 저장
- 메인보드
- 버스
- 컴퓨터 장치들을 연결하고 데이터를 전송하는 역할 - 메인보드
- 다양한 부품을 연결하는 커다란 판
- 복잡한 버스들로 구성
- 그래픽카드, 사운드카드, 랜카드 등이 기본으로 내장됨
- 버스
2) 폰노이만 구조
- 폰노이만 구조
- CPU, 메모리, 입출력장치, 저장장치가 버스로 연결된 구조
- 모든 프로그램이 메모리에 올라와야 실행할 수 있는 특징
3) 요리사 모형
- 생략
4) 하드웨어 사양 관련 용어
- 클록
- CPU의 속도와 관련된 단위
- CPU가 작업하는 일정한 박자
- 클록이 일정 간격으로 tick을 만듦
- tick에 맞춰 CPU 안의 모든 구성 부품이 작업하며, 메인보드의 클록이 틱을 보낼 때마다 데이터를 주고받음
- 헤르츠
- 1초에 클록틱이 발생하는 횟수
- 3.4GHz는 1초에 3,400,000,000번 클록틱이 발생
- 1초에 약 34억 번의 연산을 할 수 있다는 의미
- 시스템 버스와 CPU 내부 버스
- 시스템 버스
- 메모리와 주변장치를 연결하는 버스
- 전면 버스(FSB, Front-Side Bus) - CPU 내부 버스
- CPU 내부에 있는 장치를 연결하는 버스
- 후면 버스(BSB, Back Side Bus) - 두 버스의 속도 차이로 작업 지연 발생
- 시스템 버스
2. CPU와 메모리
1) CPU의 구성과 동작
- 산술논리 연산장치
- 쩜
2) 메모리의 종류와 부팅
- 쩜
- 쩜
3. 컴퓨터 성능 향상 기술
1) 버퍼
- 쩜
- 쩜
2) 캐시
- 쩜
- 쩜
3) 저장장치의 계층 구조
- 쩜
- 쩜
4) 인터럽트
- 폴링(Polling)
- 상태를 주기적으로 검사하는 방법
- CPU가 직접 입출력장치에서 데이터를 가져오고 내보낼 때 폴링 사용
- 초기 컴퓨터 시스템에서 사용
- 그러나 CPU가 명령어 해석 / 실행 역할 외에 모든 입출력까지 관여하는 것은 작업 효율이 떨어짐
- 인터럽트(Interrupt)
- 상태가 변했을 때 알리는 방식
- CPU 작업과 데이터 입출력을 분리하여, 입출력 관리자가 데이터 입출력을 담당
- 즉, 데이터 입출력 시간에 CPU가 다른 작업 가능
- 이 때 입출력 관리자가 CPU에게 완료 신호를 보낼 때 인터럽트 사용
- IRQ (Interrupt ReQuest)
- 주변장치 / 장치의 작업을 식별하기 위한 번호 - 인터럽트 벡터 (Interrupt Vector)
- 인터럽트의 빈번한 사용이 비효율적
- 여러 개의 인터럽트를 하나의 배열로 만든 것
- 직접 메모리 접근 (DMA, Direct Memory Access)
- 메모리는 CPU만 접근 권한을가짐
- 입출력 관리자가 CPU의 요총에 의해 데이터를 메모리에 가져다 놓을 때 권한 문제
- 입출력 관리자의 CPU 허락 없이 메모리에 접근할 수 있는 권한이 DMA
- 메모리 매핑 입출력 (MMIO, Memory Mapped I/O)
- 메모리에 CPU가 사용하는 데이터 / 입출력 장치가 사용하는 데이터가 섞임
- 두 공간을 분리
- 운영체제 영역 / CPU 작업 영역 / 입출력 작업 영역
- 사이클 훔치기 (Cycle Stealing)
- CPU와 DMA가 메모리에 동시에 접근
- 비교적 DMA의 속도가 느리므로 CPU가 양보하는 것
4. 병렬 처리
1) 병렬 처리의 개념
- 쩜
- 쩜
1) 병렬 처리 시 고려 사항
- 쩜
- 쩜
1) 병렬 처리 기법
- 쩜
- 쩜
5. [심화학습] 무어의 법칙과 암달의 법칙
1) 무어의 법칙
- 쩜
- 쩜
2) 암달의 법칙
- 쩜
- 쩜
'책읽기' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰][문자열] 가장 긴 팰린드롬 부분 문자열 (0) | 2021.07.18 |
---|---|
[데이터 분석을 위한 SQL 레시피][2장] 이 책에서 다루는 도구와 데이터 (0) | 2021.07.18 |
[스프링 인 액션][Part-1 스프링 기초][Ch-1] 스프링 시작하기 (0) | 2021.07.17 |
[쉽게 배우는 운영체제][Part-1][Ch-1] 운영체제의 개요 (0) | 2021.07.16 |
[파이썬 알고리즘 인터뷰][문자열] 그룹 애너그램 (중요) (0) | 2021.07.16 |