본문 바로가기

정글37

WIL(6주차) Malloc-lab 구현 이번주 회고 이번주는 생각보다 시간이 너무 부족했다. 직접 머리 박으면서 하는 것도 힘들고, 메모리 오류를 밥먹듯이 봤던것 같다. 그래도 팀원들 많이 도와주고 도움도 많이 받으면서 같이 해결해나가는게 즐거웠다. 특히 Explicit 구현하는데 시간을 너무 많이 써서 마지막 버디 시스템 도입 못해본게 너무 아쉽다. 직접 글과 자료 보면서 악으로 깡으로 짜는게 쉽지 않았던 것 같다. 다음부터는 그냥 구글링도 좀 하고 이론적인 내용을 좀 더 봐야할 것같다. Malloc-lab 우리는 현재 C언어에서 메모리를 할당 받는 함수로 malloc을 사용한다. 그 내부는 어떻게 돌아갈까? 라는 의문을 가지고 이 과제를 보면 매우 흥미로울 것 같다. 먼저 우리는 malloc을 이용한다고 하면 메모리 영역에서 heap 영역.. 2023. 5. 20.
(TIL 25일차) 가상 메모리1 운영체제에서 가상 메모리는 Vm라고 알려준 메인 메모리의 추상화를 제공하는 기술을 의미한다. 물리 및 가상주소 방식 메인 메모리는 M개의 연속적인 바이트 크기 셀의 배열로 구성된다. 각 바이트는 고유의 물리주소(PA)를 가진다. 첫번째 바이트는 주소 0, 다음 바이트 주소는 1..... 이런식으로 진행되고, 이와 같은 간단한 구조가 주어졌을때, CPU가 메모리에 접근하는 가장 자연스러운 방식은 물리주소를 사용하는 것. 이러한 접근법을 물리 주소 방식이라고 한다. CPU는 가장주소지정으로 가상주소(VA)를 생성해서 메인 메모리에 접근하며, 이것은 메모미로 보내지기 전에 적절한 물리 주소로 변환된다. 가상주소를 물리 주소로 변환하는 작업은 주소번역 이라고 하며, 예외 처리처럼 주소 번역은 CPU 하드웨어와 .. 2023. 5. 18.
TIL(24일차) 프로세스 전에 시간에 예외상황을 다루고 공부했던 적이 있다. TIL 21일차인가 20일차쯤이었던 것으로 기억하는데 이어지는 내용인 프로세스에 대해서 공부한 것을 기록하려고 한다. 우리 컴퓨터는 하나에 집중하는 그런 집중력이 좋은 녀석으로 보이지만 실제로는 그렇지 않다. 1. 프로그램은 단 한개만 돌아가고 있는 것처럼 보인다. -> 프로세서와 메모리를 독점하고 있다고 착각하게 한다. 2. 프로세서는 프로그램 내의 인스트럭션들을 차례대로 중단됨 없이 실행하는 것처럼 보인다. 3. 프로그램을 메모리상의 유일한 객체 처럼 보이게 한다. 위와 같은 1,2,3번같은 환상을 보여준다. 하지만 이 환상은 컴퓨터에 빠른 처리에 감춰져 있다. 이것은 프로세스라는 개념에 의해서 이루어지는데, 프로세스에 대해서 알아보자 (^ㅁ^) 프.. 2023. 5. 18.
(TIL23일차) 캐시 캐시란 캐시는 보다 크고 느린 디바이스에 저장된 데이터 객체를 위한 준비 영역으로 사용하는 작고 빠른 장치이다. 이를 사용하는 과정을 cashing 이라고 한다. 메모리 계층구조의 중심 개념에는 각 k에 대해, 레벨 k에 있는 보다 빠르고 더 작은 저장장치가 레벨 k+1에 있는 더 크고 느린 저장장치를 위한 캐시서비스를 제공한다. 유명한 메모리 계층 구조의 사진이다. 로컬 디스크는 네트워크 너머 원격 디스크로부터 가져온 파일에 대한 캐시로 서비스 하며, 메인 메모리는 로컬 디스크 상의 데이터에 대한캐시로 서비스하는 식으로 가장 작은 캐시인 CPU 레지스터 집합에 이를때까지 지속된다. 위 그림이 메모리 계층 구조에서 일어나는 동작방식이다. 블록이라고 하는 저장장치에 연속된 데이터 객체 블록으로 나뉜다. 각.. 2023. 5. 18.