크래프톤 정글

정글 7기 18, 19일차 / CS:APP(캐시, 운영 체제), 주말 회고

Jerry_K 2024. 9. 23. 10:13

🐸  9월 21일 18일차

요즘 대부분의 시간을 CS 공부에 많은 시간을 들이고 있다. 

그리고 역시 오늘 토요일도 많은 시간을 CS 공부로 보냈고,

빈 백지 상태여서 그런지 CS에 대한 지식들이 새롭고 재밌다. 

 

생각보다 많이 복잡하고 헷갈리는 것들도 많은데, 

모르는 부분에 대해 정글러들과 같이 생각을 공유하면, 

좋은 인사이트들이 나오기도 한다. 

 

오전은 컴퓨터 구조 정리에 많은 시간을 들였고,

오늘 CS 스터디를 하는 날이기 때문에, 스터디 범위까지 공부를 하였다. 

(이번 공부 범위는 CS:APP 1.6 ~ 1.7 까지 )

 

저장장치들의 계층 구조를 간단하고 정리하였고,

로컬디스크 또한 하나의 캐시가 될 수 있음에 신기했다.

내가 생각하는 캐시는 레지스터 가까이에 있는 임시 저장장치라 생각했는데,

비단 그 뿐만 아니라 로컬 디스크도 하나의 캐시가 될 수 있다는 것이다. 

그래서 캐시라는 말은 명사보다는 동사의 느낌으로 해석하면 좋을 것 같다.

 

1.7에서는 운영체제의 하드웨어 관리이다. 

운영체제는 추상화를 하여 저수준 하드웨어 장치 조작을 도와주는데,

컴퓨터 시스템에서 운영체제는 가장 핵심적인 요소라 볼 수 있다.

그리고 추상화된 프로세스, 가상메모리, 파일 들에 대해 구체적으로 봤다.

 

이 중 좀 특별한게 있었다면, 그것은 바로 가상메모리이다. 

사실 가상 메모리 개념 자체가 잘 이해가 안됐다.

(왜 굳이 가상인 메모리가 필요하지 .... ?)

솔직히 말하면 아직도 모호한데, 그래도 어느정도의 의의는 말 할 수 있다.

 

가상메모리는 물리적 한계를 극복하고자 나온 개념이다. 

프로그램 자신의 전체 메모리를 독립적으로 사용하게 해주고,

필수 부분메인 메모리에 저장되고, 나머지는 디스크에 저장된다.

많은 프로그램을 동시에 사용하면 메모리가 부족할 수 있는데,

가상메모리로 프로그램이 자신만의 충분한 메모리 공간을 가진 것처럼 생각한다.

 

가상메모리 안에는 User SapceKernel Space가 있고

각각 Space 안의 구조들을 공부하고 정리하였다.

 

 

1장. 컴퓨터 시스템 (Computer Systems A Programmer's Perspective)

🔖1.1 정보는 비트와 컨텍스트로 이루어진다. 소스 프로그램은 0 또는 1로 표시되는 비트들의 연속으로, 바이트라는 8비트 단위로 구성된다. 각 바이트는 프로그램의 텍스트 문자로 나타낸다.

jerry-k.site

 

관련 내용은 위의 포스트에 정리해두었다.

(계속 위의 포스팅을 업로딩하고 있다 ... ! )

 

CS 정리 이후에는 알고리즘 공부를 했고,

백준 이진 검색 트리 문제를 2일째 본다...

이게 아예 감이 안잡히면 풀이라도 볼 텐데, 

애매하게 풀릴 듯 말 듯 해서 계속 잡고 있었다.

예시의 답은 맞췄지만, 결국 시간초과 ㅎㅎ 

 

멘탈도 펑펑 !!

정신건강을 위해 그냥 기숙사에 갔다... 

 

 

🐸  9월 22일 19일차

22일은 일요일이라 쉬엄쉬엄 했다.

주로 CS의 부족한 부분들을 찾아보면서 공부했다.

 

CS 스터디하면서 헷갈렸던 부분들을 공부하면서 정리했다.

 

1. 운영체제는 프로세스인가 ?

→ 어디선가 운영체제는 프로세스라고 했던거 같다. 근데 뭔가 좀 이상하지 않나 ? 

프로세스를 관리하는게 운영체제인데, 운영체제가 프로세스라 ...

그래서 이 부분에 대해 찾아봤는데, 운영체제는 프로세스가 아니다 라는 쪽이 더 우세했던 것 같다.

근데 사실 이 부분이 CS에 중요하지는 않은 것 같아서 요정도 까지만 이해했다. 

 

2. 레지스터는 SRAM인가 ? 

→ 이 부분도 어디선가 들을 내용이였다. 이게 가능하나...? 라는 생각을 했었다. 

이 부분에 대해 찾은 답을 말하자면,

레지스터는 플립플롭을 이용한 SRAM 구조로 구성되어있다. 

플립플롭은 1비트의 데이터를 저장할 수 있고, 

64비트 레지스터는 64개의 플립플롭으로 구성된다. 

 

이 부분 역시 위의 포스팅에 구체적으로 포스팅 해뒀다. 

 

이후 어제 못푼 백준 이진 검색 트리 문제를 정리하고, 

다른 알고리즘 문제 한개를 풀어보았다. 

트리 부분 코드가 나에게는 좀 새롭게 느껴지는데,

해당 관련 문제를 잘 정리해두자 ! 

 

일요일은 정글 공식적으로 쉬는 날이라 대부분 휴식을 취한다.

(나도 놀러가고 싶었지만, 다음주를 위해 참았다...)

저녁은 남아있는 정글러 사람들과 밥 먹으러 가고, 학교를 산책했다.

몇 일 전과는 다르게 날씨가 시원하다. 

정말 가을이 오나보다 ~~ 

 

그리고 밤에 친한 정글러와 수다를 떨며 일요일을 마무리했다.

 

정글이 편하면 안되는데, 점점 편해지고 있다. 

몇 달전 싸피에 떨어지고 펑펑 울었던 그 간절함,

정글에 처음 왔을 때 그 긴장감을 꼭 잊지말자 !! 

 

그리고 정글을 수료했을 때를 보자

 

정말 잘 하고 싶다 !! 

프로그래밍 !!