728x90

정글 128

24.02.16 간단한 정리, 코드리뷰에 대해, 백준, C++

간단한 정리 9. 가상메모리 가상메모리는 각 프로세스에 하나의 크고 통합된, 사적 주소공간을 제공한다. 가상메모리의 세 개의 중요한 기능 메인 메모리를 디스크에 저장된 주소공간에 대한 캐시로 취급해서 메인 메모리 내 활성화 영역만 유지하고, 데이터를 디스크와 메모리간에 필요에 따라 전송하는 방법으로 메인 메모리를 효율적으로 사용한다. 각 프로세스에 통일된 주소공간을 제공함으로써 메모리 관리를 단순화한다. 각 프로세스에 의한 손상으로부터 보호한다. 9.1 물리 주소 가상주소 방식 물리주소에 순차적으로 접근 가상주소 : CPU가 가상주소를 생성해서 메인 메모리로 접근, 메모리로 가기 전 주소번역 과정을 통해 물리주소로 변환한다. 9.3 캐싱 도구로서의 VM 결과적으로, 가상메모리는 디스크에 저장된 N개의 바..

크래프톤 정글 - 코드리뷰에 대해

코드리뷰에 대해 꼭 한번은 들어보면 좋을 것같은 강의 추천추천~ 코드리뷰가 왜 중요할까? 이걸 어떻게 해야할까? 코드리뷰는 어떤식으로 진행되고 뭐가 필요할까 많은 고민을 해결해 줄 수 있었다. TEST-Drive Development - 테스트가 기본이다. 요구사항과 구현을 분리하라 테스트는 언제나 코드와 싱크되어 있다. no test, no source code 자잘하게 많이 커밋해라 Pair Programming - 선배 어깨 너머로 배우기 둘이 나란히 한 컴퓨터로 프로그래밍 실력이 정말 빠르게 증가한다. Code Review - 이해하기 쉽고, 유지보수하기 쉽게 꼭 필요한 한 단계이다. 당신의 동료로 부터 내 코드를 피드백 받는 것을 의미한다. It is not about code review 소프..

잡담 2024.02.16

24.02.15 간단한 정리, 백준

간단한 정리 8. 예외적인 제어흐름 시스템들은 또한 내부 프로그램 변수에 의해 표시되지 않으며, 프로그램의 실행과는 반드시 관련되어 있지 않은 시스템의 상태변화에도 반응할 수 있어야 한다. 현대의 시스템들은 제어흐름의 갑작스러운 변화를 만드는 방법으로 이런 상황에 반응한다. 일반적으로 이와 같은 급격한 변화를 예외적인 제어흐름(ECF : Exceptional Control Flow)라고 한다. 8.1 예외상황 예외상황은 부분적으로 하드웨어와 운영체제에 의해 구현된 예외적인 제어흐름의 한 가지 형태이다. 예외상황은 어떤 프로세서 상태의 변화에 대한 대응이다. 상태의 변화 → 이벤트라고 한다. 프로세서가 이벤트가 발생했다는 것을 감지하면, 예외테이블이라고 하는 점프테이블을 통해서 이 특정 종류의 이벤트를 처..

크래프톤 정글 - 5-1Week 24.02.08 - 24.02.14 부제 : 설날과 CSAPP

회고 설날이 껴 있어서 1박2일 전주에 내려갔다 왔다. 오랜만에 가족, 친척을 봐서 좋았지만 내심 이렇게 2일동안 뒤쳐지는게 아닐까 하고 생각을 하기도 했다. 참 무서운 곳이다 정글은. 설날이 껴있기에 정글도 5주차를 2주동안 진행해서 5-1과 5-2로 나누도록 하겠다. 5-1주차에는 CSAPP에 집중하려고 노력했다. 일단 책의 범위도 많고, 한번 할 때 완벽하게는 당연히 못하지만 꼼꼼하게 잘 읽어놓으면 다음에 무조건 도움이 될 것이라고 생각해서 하루에 한 챕터씩 끝내려고 노력했다. 정말 힘들었지만 그래도 CSAPP와 조금 더 친해진 느낌이 든다. 미래의 일이나 여러가지 고민이 점점 많아지는 것 같다. 내가 잘하고 있다고는 생각하지만 이게 언제까지 일지도 잘 모르겠고, 앞으로 잘 해낼 수 있을까도 음 사..

24.02.14 간단한 정리, 백준, C++, Keyword

간단한 정리 6장 정리 6.1.1 랜덤 - 접근 메모리(RAM : Random Access Memory) 동적(DRAM) : 메인메모리, 그래픽 시스템의 프레임버퍼 정적(SRAM) : 캐시메모리 정적RAM(SRAM) 각 비트를 이중안전(bistable) 메모리 셀에 저장 두 가지 상태외 다른 상태들은 모두 불안정하다. - 역진자와 유사하다. 동적RAM(DRAM) 각 비트를 전하로 캐패시터에 저장 외란에 민감하다. DRAM 칩 내의 셀들은 슈퍼셀들로 나누어지며 각각은 DRAM셀들로 이루어진다. 슈퍼셀은 직사각형 배열이다. 정보는 pin이라고 부르는 외부 커넥터를 통해 칩의 안과 밖을 흘러 다닌다. 일반DRAM 슈퍼셀(i,j)의 내용을 읽으려면 메모리 컨트롤러는 행 주소i를 DRAM에 보내고, 다음에 열 주..

24.02.13 CSAPP 9

CSAPP 9. 가상 메모리 메모리를 보다 효율적이고 더 적은 에러를 갖도록 관리하기 위해서 현대의 시스템은 가상메모리(VM : Virtual Memory)이라고 알려진 메인 메모리 추상화를 제공한다. 가상 메모리는 한 개의 깔끔한 메커니즘을 사용해서 세 개의 중요한 기능을 제공한다. 메인 메모리를 디스크에 저장된 주소공간에 대한 캐시로 취급해서 메인 메모리 내 활성화 영역만 유지하고, 데이터를 디스크와 메모리안에 필요에 따라 전송하는 방법으로 메인 메모리를 효율적으로 사용한다. 각 프로세스에 통일된 주소공간을 제공함으로써 메모리 관리를 단순화한다. 각 프로세스의 주소공간을 다른 프로세스에 의한 손상으로부터 보호한다. 9.1 물리 및 가상주소 방식 컴퓨터 시스템의 메인메모리는 M개의 연속적인 바이트 크기..

24.02.12 CSAPP 8, Stack & Queue 구현

CSAPP 8. 예외적인 제어흐름 시스템들은 또한 내부 프로그램 변수에 의해 표시되지 않으며, 프로그램의 실행과는 반드시 관련되어 있지 않은 시스템 상태의 변화에도 반응할 수 있어야 한다. 급격한 변화를 예외적인 제어흐름이라고 부른다. 예외적인 제어흐름은 컴퓨터 시스템의 모든 수준에서 발생한다. 8.1 예외 상황 예외 상황은 부분적으로는 하드웨어와 운영체제에 의해서 구현된 예외적인 제어흐름의 한 가지 형태다. 예외 상황은 어떤 프로세서 상태의 변화에 대한 대응으로, 제어흐름의 갑작스런 변화다. 프로세서가 이벤트가 발생했다는 것을 감지하면, 예외 테이블이라고 하는 점프 테이블을 통해서 이 특정 종류의 이벤트를 처리하기 위해 특별히 설계 된 운영체제 서브루틴(예외처리 핸들러)으로 간접 프로시저 콜을 하게된다..

24.02.11 CSAPP 6.1.2 - 6, LinkedList 구현

CSAPP 6.1.2 디스크 저장장치 디스크의 구조 디스크는 원판(platter)로 구성된다. 각 원판들은 두개의 옆면 즉 표면으로 이루어져 있으며, 이들은 자성을 띤 기억 물질로 코팅 되어 있다. 원판의 중심부에 있는 회적하는 축(spindle)은 원판을 고정된 회전율로 돌려주며, 이 비율은 대개 분당 5,400 에서 15,000번 회전하는 비율(RPM)을 갖는다. 디스크는 일반적으로 밀봉된 저장기에 들어있는 한 개 이상의 원판들을 가진다. 디스크의 각 표면은 트랙이라고 하는 여러개의 동심원들로 이루어져있다. 각 트랙은 섹터들의 집합으로 나누어진다. 각 섹터는 섹터위에 자성물질로 인코딩 된 동일한 수의 데이터 비트(일반적으로 512바이트)를 가진다. 섹터들은 아무 데이터도 기록되지 않은 갭으로 분리되어..

24.02.08 CSAPP 6.1

CSAPP 6. 메모리 계층구조 메모리 시스템은 여러가지 용량, 비용, 접근 시간을 갖는 저장장치들의 계층구조다. CPU 레지스터들은 가장 자주 이용하는 데이터를 보관한다. 작고 빠른 캐시 메모리는 CPU부근에서 비교적 느린 메인메모리에 저장된 데이터와 인스트럭션들의 부분집합에 대한 준비장소로 사용된다. 메인메모리는 크고 느린 디스크들에 저장된 데이터를 준비하는데 사용되고, 다시 이 디스크들은 네트워크로 연결된 다른 머신들의 디스크나 테이프에 저장된 데이터를 위한 준비장소로 사용된다. 메모리 계층구조는 잘 작성된 프로그램이 어느 특정 수준의 저장장치를 다음 하위 수준의 저장장치보다 좀 더 자주 접근하는 경향을 갖기 때문에 작동하다. 그래서 다음 수준에 있는 저장장치는 더 느릴 수 있으며, 비트당 크기도 ..

크래프톤 정글 - 4Week 24.02.01 - 24.02.07

회고 4주차부터는 c언어가 시작됐고, rb트리 구현이 과제로 주어졌다. 아에 처음은 아니지만 python을 계속 써와서 다시 적응하는데 좀 시간이 걸렸다. 레드블랙 트리를 이해하고 구현하는데 좀 시간을 많이 사용했는데, 구현부분에서는 예림님과 재희님이 큰 도움을 주셔서 편하게 할 수 있었다. 뭔가 뭔가 더 잘할 수 있을 것 같은데 약간약간이 아쉬운 것 같다. 조금만 더 힘내봅시다룽 이제 5주차가 시작하고 설날 연휴가 껴있어서 생각보다 길게 진행이 된다. 쳐지지 않고 이 익스텐션을 잘 유지하면서 공부해보자 CSAPP 7. 링커 Linking 링킹(linking)은 여러개의 코드와 데이터를 모아서 연결하여 메모리에 로드 될 수 있고 실행 될 수 있는 한 개의 파일로 만드는 작업이다. 링킹은 컴파일 시에 수행..

728x90