본문 바로가기

전체 글161

Process Process 개념 process 운영체제에서 일련의 작업 단위 프로그램은 파일이 저장 장치에 저장되어 있고 메모리에 올라와 있지 않은 정적인 상태 프로그램을 실행시켜 OS로부터 자원을 할당받아 실행되는 상태를 프로세스 메모리에 올라와 있고 실행 중이며 OS로 부터 자원을 할당받고 PCB에 정보가 담기고 CPU 제어권을 받은 상태 프로세스 메모리 구조 OS kernel space - 드라이버 stack - 지역 변수, 매개변수, LIFO 방식, 높은 주소에서 낮은 주소로 할당 heap - 동적 메모리, FIFO 방식, 낮은 주소에서 높은 주소로 할당 BSS(Block Started by Symbol) - 초기화 되지 않은 변수를 저장 Data - 전역 변수를 저장 text - 상수, 실행할 코드 저장 오.. 2023. 2. 25.
Cache Cache 개념 Principle of Locality 자주 사용하는 데이터에 대한 지역성 시간 지역성 - 최근 접근한 데이터를 다시 접근 공간 지역성 - 최근 접근한 데이터의 주변 공간에 접근 Cache L1 cache 프로세서와 가장 가깝고 빠른 속도이며 용량이 제일 적다 instruction cache(text 영역), data cache(text 외 영역)로 구분 L2 cache L1 캐시처럼 나뉘지 않는 보다 큰 용량 L3 cache 멀티코어에서 여러 코어가 공유하는 캐시 Cache matrix 캐시 성능 측정 hit latency - 캐시에서 찾고자 하는 데이터를 찾을 때 걸리는 시간 miss latency - cache miss가 발생해 상위 캐시에서 데이터를 찾아오는 데 걸리는 시간 ave.. 2023. 2. 24.
Virtual memory Virtual memory Memory 개념 프로그램을 실행할 때 데이터나 코드를 저장하는 공간 주기억 장치 - dram, cache, register 보조기억 장치 - ssd, hdd 가상 메모리 개념 실제 메모리보다 많아 보이게 하는 기술로 어떤 프로세스가 실행될 때 프로세스 전체가 메모리에 올라가지 않는다. 일부분만 메모리에 올려놓고 나머지는 보조 기억 장치에 저장 MMU Memory Management Unit 가상 주소를 물리적 주소로 변환 모든 가상 주소를 변환하면 부하가 크기 때문에 ram을 page로 나누어서 처리 요구 페이징 CPU가 요구할 때 데이터를 메모리에 올리는 것 Page fault 어떤 프로그램이 가상 메모리상의 데이터에 접근하려고 하지만 실제 메모리에는 부재할 경우 발생 운영.. 2023. 2. 23.
Semaphore & Mutex Semaphore & Mutex Critical section 개념 여러 프로세스나 스레드가 공유된 자원을 접근하는 코드 블록 공유된 자원을 동시에 접근하면 문제가 발생할 수 있다. Semaphore 개념 critical section에서 발생하는 문제를 해결하기 위한 개념 공유 자원에 대한 접근이 가능한 프로세스나 스레드의 수를 변수로 제한 운영체제나 커널에 변수를 저장하고 프로세스가 이 값을 확인 및 변경 가능 세마포어가 5라면 접근할 수 있는 프로세스는 5개이다. Mutex 개념 MUTual EXclusion의 약자로 binary semaphore로 불린다. 단 하나의 프로세스나 스레드가 접근 가능하다. 사용 중인 프로세스나 스레드가 lock을 걸고 unlock도 해당 프로세스만 가능하다. 뮤텍스는.. 2023. 2. 22.