캐시매핑
·
Computer Science/Operating System
캐시의 크기는 메모리보다 작기 때문에 효율적으로 매핑하는 것이 중요하다적절한 매핑 기법을 사용하면 캐시 적중률을 높일 수 있어 전체 시스템의 성능이 향상된다운영체제의 메모리 관리운영체제는 메모리를 똑같은 크기의 페이지(4kb)로 나눠 관리를 한다 주소 구조가상 주소는 로 구성P(Page Number): 페이지 번호 (20bits로 관리)D(Page Offset): 페이지번호로부터 해당 주소까지의 거리 (12bits로 관리) 가상 주소와 물리 주소가상 주소: 프로그램이 사용하는 주소(20bits)물리 주소: 실제 메모리의 주소(16bits) 주소 변환가상 주소를 물리 주소로 변환할 때 페이지 테이블을 사용Page Number만 변환되고 Page Offset은 그대로 유지 매핑의 종류1. 직접매핑메모리의 특..
캐시히트와 캐시미스
·
Computer Science/Operating System
캐시속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리 캐시는 반응 속도가 빠른 SRAM(Static Random Access Memory)으로 주소가 키(Key)로 주어지면 해당 공간에 즉시 접근할 수 있음이러한 특성은 DRAM(Dynamic Random Access Memory)도 동일하지만 하드웨어 설계상 DRAM은 SRAM보다 느림DRAM은 행과 열을 순차적으로 활성화하여 데이터에 접근하며 이 과정에서 추가적인 지연이 발생하기 때문 캐시를 설정할 때는 자주 사용하는 데이터를 기반으로 설정함이 때 지역성을 기반으로 설정되는데, 시간 지역성과 공간 지역성으로 나뉨 int[] arr = new int[10];for(int i=0; i시간 지역성(temporal local..
PCB와 Context Switching
·
Computer Science/Operating System
컴퓨터에서 일어나는 다중 작업은 동시에 처리하는 것이 아닌각 프로그램을 일정시간 동안 번갈아가면서 실행하는 것이다.다만 그 속도가 매우 빠르기에 동시에 처리한다고 느끼는 것이다. 프로세스들이 교체되어 수행되고 나면 원래 수행하던 프로세스의 정보를 저장하고다른 프로세스를 처리해야 하는데, 이를 저장하는 공간을 PCB(Process Control Block) 라고 한다.PCBPCB : 운영체제에서 관리하는 프로세스에 대한 메타데이터를 저장한 데이터블록프로세스가 생성될 때 고유의 PCB가 생성되며 종료되면 PCB가 제거됨커널의 데이터 영역에 저장됨실행 상태일 때는 프로그램 카운터 레지스터 값 등이 CPU 레지스터에 로드됨 Pointer: 프로세스 전환 시 위치 정보를 유지하는 스택 포인터Process Stat..
메모리 계층 구조
·
Computer Science/Operating System
메모리 계층 구조?컴퓨터 시스템에서 데이터 저장과 접근을 최적화하기 위해 설계된 구조 메모리 계층 구조를 사용하는 이유컴퓨터 시스템의 성능과 효율성을 최적화하기 위함성능 최적화: CPU가 필요한 데이터에 빠르게 접근할 수 있도록 함비용 효율성: 고가의 고속 메모리와 저가의 대용량 메모리를 적절히 조합함데이터 관리 효율화: 자주 사용되는 데이터를 빠른 메모리에 저장하여 전체 시스템의 효율을 높임레지스터CPU 내부에서 데이터를 직접 처리하는 가장 빠른 메모리현재 실행중인 명령어명령어 레지스터(IR)가 처리하며 “LOAD A, 100”과 같은 현재 실행중인 명령어를 저장연산에 필요한 임시 데이터메모리 주소프로그램 카운터다음에 실행할 명령어의 주소 저장캐시CPU와 주 메모리 사이의 속도 차이를 줄이는 고속 버퍼..
컨텍스트 스위칭(context switching)
·
Computer Science/Operating System
context switching이란?context는 프로세스의 상태 정보를 의미하며 CPU 혹은 코어에서 실행 중이던 (프로세스 / 스레드) 가 다른 (프로세스 / 스레드)로 교체되는 것으로여러 프로세스 및 스레드를 동시에 실행시키기 위해서 필요하다. context switching이 발생하는 조건주어진 time slice(quantum)를 전부 사용했거나, IO 작업을 해야하거나, 다른 리소스를 기다려야 하는 등의 이유로 발생하게 됨 context switching은 누구에 의해 실행되는가??OS kernel : 운영체제의 핵심ontext switching이란?CPU 혹은 코어에서 실행 중이던 (프로세스 / 스레드) 가 다른 (프로세스 / 스레드)로 교체되는 것으로여러 프로세스 및 스레드를 동시에 실행..
프로세스와 스레드
·
Computer Science/Operating System
사전 지식프로세스란?컴퓨터에서 실행중인 프로그램이며각각의 프로세스는 독립된 메모리 공간을 할당 받고, 명령어들과 데이터를 가짐 컴퓨터 시스템 발전 과정1. 단일 프로세스 시스템한 번에 하나의 프로그램만 실행▶ 또 다른 프로그램을 실행하기 위해서는, 먼저 실행되었던 프로그램이 종료된 후에 실행해야 함 한계점 : CPU의 자원이 낭비됨 만약P1 이라는 프로세스가 CPU를 사용하기도 하며, IO 작업을 진행할 수 있다는 가정하에 P1이 프로세스 도중 IO 작업을 만나게 된다면 어떻게 될까?? ▶ IO 작업 중 CPU는 아무런 작업 없이 자원을 낭비하게 됨 해결책 : 여러 개의 프로그램을 메모리에 올려놓고 동시에 실행하자 ▶ IO 작업이 발생 했을 때 남는 시간에 다른 프로세스가 CPU에서 실행됨이러한 방식의 ..