개발자기본지식

#4강. I/O란 무엇인가요

JJJAEOoni 2021. 12. 17. 13:04
반응형
CPU       ->       RAM       ->      HDD (하드디스크)
      -----------------------------------------       -------------------------          
            핵심장치                         주변장치

 

하드 디스크(Hard Disk Drive, HDD) : 비휘발성, 순차 접근이 가능한 컴퓨터의 보조 기억장치

 

 

CPU와 RAM은 컴퓨터의 핵심장치이고 HDD는 주변장치이다.

 

RAM은 데이터를 전류로 저장하기 때문에 휘발성 메모리이다.

따라서 컴퓨터를 종료하면 RAM의 데이터가 날아가기 때문에

영구적인 저장이 필요한 데이터같은 경우에는 HDD에 물리적인 저장을 해줘야 하고

이를 COMMIT이라고 한다.

 

CPU에서 RAM에 데이터를 요청하고, RAM에 데이터가 없는 경우 HDD에서 데이터를 가지고 오며,

작업을 Input이라 한다.

이때, HDD에서 데이터를 RAM으로 보내는 작업을 Output이라고 한다.

I/O 작업이 적을수록 속도가 올라가고 좋은 프로그램이다.

 

데이터를 HDD에서 RAM에 가져오려고 하는데 때, RAM이 가득 찬 경우 LRU를 사용해야 한다.

 

페이지 교체 알고리즘 : 페이징 기법으로 메모리를 관리하는 운영체제에서, 페이지 부재가 발생하여

새로운 페이지를 할당하기 위해 현재 할당된 페이지 중 어느 것과 교체할지를 결정하는 방법

- 종류 : FIFO, LFU, LRU 등

 

LRU 알고리즘(Least Recently Used Algorithm) : 가장 오랫동안 참조되지 않은 페이지를 교체하는 기법

 

데이터를 저장하는 과정에

CPU에서 RAM에 저장하는 과정을 A라고 하고

RAM에서 HDD에 저장하는 과정을 B라고 하자.

 

'사과'라는 데이터를 저장할 때 A, B가 한 번씩 일어나고 I/O는 1번 일어났다.

'딸기'라는 데이터를 저장할 때 A, B가 한 번씩 일어나고 I/O는 총 2번 일어났다.

 

이전에 말했다시피, I/O의 작업은 적을수록 좋다.

 

그렇다면

'사과'라는 데이터를 저장할 때 A가 한번 일어나고,

'딸기'라는 데이터를 저장할 때 A가 일어난 후

'사과'와 '딸기'를 모아서 B를 실행한다면

I/O는 총 1번 일어나게 된다.

 

이러한 과정을 더티 체킹(Dirty Checking)이라고 한다.

 

 

[출처]

 

https://cafe.naver.com/metacoding

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com

메타코딩 유튜브

https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 

반응형