SW사관학교 정글7기 개발일지 (09/08)

c4fiber·2023년 9월 9일
0

SW사관학교 정글7기

목록 보기
23/49

git commit editor 변경 -> vim

git commit 명령어를 사용하면 커밋 메세지를 에디터로 편집할 수 있다.
기본 에디터는 nano로 설정되어있는데 불편해서 vim 에디터로 바꾸려고 한다.

git config --global core.editor "vim" 명령어를 통해 vim으로 편집할 수 있도록 변경한다.

Thrashing (쓰레싱)

  1. 가상 메모리 시스템(virtual memory system)(또는 페이징, paging)에서는 내가 필요로 하는 데이터가 실제 메모리(physical memory, RAM)에 없을 수도 있다.

이때 page fault가 발생했다고 표현하는데 내가 사용하고 싶은 page가 실제 메모리 (physical memory)에 load되어있지 않은 상태를 말한다.

그럼 OS는 어떻게 해야할까? 보조기억장치(SSD, HDD 등)에 백업해둔 데이터를 읽어서 메모리에 적재시켜준뒤 나에게 전달해주어야 한다.

메모리에 여유공간이 없는 상태라면 특정 기준(알고리즘)에 따라 메모리 공간의 데이터를 보조기억장치에 저장하고, 내가 원하는 데이터를 메모리에 적재하여 나에게 전달해주어야 한다. 이를 Swapping이라고 한다.

여러 프로세스에서 page fault가 반복되게 되면 매번 보조기억장치에 접근해 데이터를 읽고 메모리에 적재하는 과정이 빈번하게 일어난다. 그럼 CPU는 데이터를 읽고 저장하느라 시간을 낭비하게 된다.

데이터를 옮기는 과정에서 발생하는 시간소요때문에 CPU 효율성(CPU utilization)이 떨어지게 되고 이 현상을 Thrashing이라고 표현한다.

출처: https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Integer-Types

CPU Word 단위

WORD 하면 어떤게 떠오르는가? 나는 한 단어, 쪼개면 의미를 상실한다 정도로 생각한다.

Intel CPU의 경우 WORD=16bit 라는 공식이 존재하기 때문에 32bit 환경에서는 DWORD라고 표현, 64bit 는 QWORD라고 표현한다.

하지만 내가 수행하고 있는 malloc-lab 프로젝트에서는 WORD를 한번에 처리할 수 있는 용량 내지는 주소 라고 생각하겠다. 따라서 32bit 컴파일러를 적용하면 WORD=32bit가 된다.

profile
amazing idiot

0개의 댓글