일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 운영체제
- 스프링
- zookeeper
- 의존성주입
- 데이터엔지니어
- 커널
- 코테
- POJO
- Kafka
- 자바빈
- spring boot
- 카프카
- Context Switching
- 스프링빈
- fork()
- 합격
- PCB
- CPU
- docker
- 시스템호출
- Pub/Sub
- CNS
- 도커
- 취뽀
- 회고
- OS
- 제어의역전
- 부팅
- 컴퓨터 구조
- Data Engineering
- Today
- Total
모래성 말고 철옹성
Chapter2. 컴퓨터 구조와 성능 향상 (2) 본문
컴퓨터 구조의 한계 혹은 자원의 한정적인 이유로 CPU의 성능을 최고로 내지 못할 수 있다. 이를 해소하기 위한 다양한 방법을 알아보자
컴퓨터 성능 향상기술
버퍼(Buffer)란?
일정량의 데이터를 모았다가 한 번에 옮기는 방법으로 속도 차이가 존재하는 두 장치간 차이를 완화시키는 역할을 한다.
버퍼와 비슷한 용어로 스풀(SPOOL)이 있는데, CPU와 입출력장치의 속도 차이를 완화시키기 위한 소프트웨어적인 버퍼이다.
캐시(Cache)란?
캐시란 CPU와 메모리사이의 속도 차를 완화하기 위해 메모리에서 데이터를 미리 가져와 임시로 저장해두는 CPU 내부 공간을 말한다. (캐시는 CPU 내부 버스를 사용하기 때문에 더 빠르다.)
CPU는 필요한 데이터를 메모리로 가기 전 캐시에서 먼저 찾는데 원하는 데이터가 있을 때 cache hit, 없을 때는 cache miss 라고 한다.
캐시로 가져오는 데이터는 지역성(locality) 이론으로 현재 실행중이 데이터의 가까이 있는 데이터를 가져온다.
문득 의문이 든다 -> 캐시와 메모리의 데이터는 어떻게 동기화 하나?
캐시의 변경된 데이터를 메모리에 반영하는 방법은 두 가지가 있다.
- 즉시쓰기 (write through)
- 데이터 변동시 즉시 변경
- 빈번한 접근으로 성능 하락 존재
- 하지만 동기화 걱정이 없음 - 지연쓰기 (write back)
- 캐시의 변경된 데이터를 주기적으로 모아 변경 (copy back)
- 성능 하락 없음
- 하지만 동기화 걱정 존재
저장장치 계층구조
지금까지 나온 저장장치의 계층적 구조를 피라미드 형식으로 나타내보았다.
인터럽트란?
인터럽트란 CPU가 작업 실행중에 입출력장치같은 예외상황 발생 시 CPU에게 알려 처리할 수 있도록 하는 것을 말한다.
이 방식은 CPU의 작업과 저장장치의 데이터 이동을 독립적으로 운영함으로써 시스템의 효율을 높여준다.
입출력에 의한 인터럽트 방식은 다음과 같다.
- CPU가 입출력 관리자에게 입출력 명령을 보낸다.
- 입출력 관리자는 명령을 받아 데이터를 처리한다.
- 데이터 전송이 완료되면 입출력 관리자는 완료 신호를 CPU에게 보낸다.
이 때 CPU에게 보내는 완료신호가 CPU의 현재 작업을 중단하고 완료된 건을 처리해야하기 때문에 인터럽트(Interrupt : 가로막기, 끼어듦)이다.
병렬 처리
병렬 처리란?
TBD
병렬 처리 시 고려할 점은?
TBD
병렬 처리 기법
TBD
'Computer Science > 운영체제' 카테고리의 다른 글
Chapter3. 프로세스와 스레드 (1) (0) | 2022.09.06 |
---|---|
Chapter2. 컴퓨터 구조와 성능 향상 (1) (0) | 2022.08.22 |
Chapter1. 운영체제의 개요 (2) (0) | 2022.08.04 |
Chapter 1. 운영체제의 개요 (1) (0) | 2022.08.04 |
운영체제 스터디 2022-07-31~ (0) | 2022.07.31 |