https://therapeutic-scallion-56a.notion.site/WEEK_09_Pintos_Project2_User-Program-bd47f914f8ce485cb757c3e65edc2ab3
Develop
1. PintOS 동기화에 관한 주요 용어 정리 1) 스레드(Thread) 프로세스 ‘내’에서 실행되는 흐름의 ‘단위’를 말한다. 멀티 스레드(multi_thread) : 프로세스 내에는 최소 한개 이상의 스레드가 실행 될 수 있다. 아주 큰 장점으로는 하나의 프로세스에서는 여러 스레드가 자원(메모리)를 공유하게 된다. 💡 멀티 프로세스와의 차이점으로는 각각의 프로세스는 자원을 공유할 수 없다. 2) 인터럽트의 비활성화(Disabling Interrupts) 커널의 스케쥴링 방식에 따라 CPU 사용을 선점 당할 수 있는지의 여부가 달라진다. PintOS는 커널 스레드가 언제든지 선점 당할 수 있는 Preempible kernel(선점형 커널)이다. interrupt를 비활성화 하는 것만으로도 Synchr..
해당 내용은 정확하지 않아 개발 공부에 도움이 되지 않습니다. 귀한 시간 내주시어 지적해 주시면 감사 드리겠습니다. 1. Tiny서버 1) CGI - 서버와 어플리케이션 간에 데이터를 주고 받는 방식, 또는 컨벤션 2) 소켓 - 데이터를 보내거나 받을때 창구 역할을 한다. - 데이터 송신의 Abstraction 3) 라우팅과 라우트 - 라우트는 경로, 라우팅은 그 경로를 찾아가기 위한 과정 4) Tiny 서버에서 사용되는 함수 정리 - strlen() : 문자열 길이를 반환한다. - open() : std input, std output, std err 파일을 기본적으로 열어 줄 수 있다. - close() : file descriptor(fd)를 받아 닫는다. - Read() : 읽은 바이트의 크기를 ..
해당 내용은 정확하지 않을 수 있습니다. 귀한 시간 내주시어 지적해 주시면 감사드리겠습니다. Malloc 함수란? C에서 메모리를 동적으로 할당 하기위한 함수이다. 사용을 위해선 stdlib.h 헤더를 include 해야 사용할 수 있다. 왜 메모리를 동적으로 할당할 일이 생길까? 기존에 Python만을 사용하던 나에겐 이해가 되지 않는 부분중 하나였다. C에서는 컴파일과정이 필요하고 이로 인해 컴파일 후 runtime이라는 부분이 생긴다. 이렇게 되면 문제가 몇가지 생긴다. - 컴파일을 하면서 '난 변수에서 이 정도 메모리를 쓸 거고, 리스트로 이 정도 메모리 쓸 거야' 하는 정보가 실행파일 정보에 담긴다. - 하지만 프로그램이라는게, 유동적인 구조들이 필요할 경우가 당연히 생긴다. - 예를들어 리스트..
해당 내용은 정확하지 않을 수 있습니다. 그래서 당연히 귀한 시간 내주시어 지적해 주시면 감사 드리겠습니다. Red Black Tree란? 자세한 개념 정리는 정리가 잘 되어있는 블로그들이 많아 생략. 1. 자료 구조 중 하나이다. 2. 자가균형이진 탐색 트리이다. 3. 쉬운말로 자료(값)을 삽입하고 삭제하여도 해당 트리는 스스로 균형을 유지한다. -> 이말인 즉, 해당 트리를 탐색 하였을때 아주 효율적인 탐색이 가능하다. Red Black Tree 특징 1. (균형)이진탐색트리 2. 노드는 Rad/Black 중 하나씩만 갖어야 한다. 3. Root노드는 Black이여야 한다. 4. leaf node는 Black이여야 한다. 5. Rad node의 자식노드는 무조건 Black 6. 각 노드는 leaf ..
1. 위 그림은 CPU를 몇가지 구성으로만 그린 그림이다. 2. 예를 들어 c = a+b 에대한 연산을 진행 한다고 가정하고 cpu에서의 아주 간략한 흐름만 보겠다. 3. 입력된 코드가 실행된다. 4. 해당 코드들은 각각의 메모리주소마다 저장된다고 가정한다. 5. 그리고 프로그램 카운터에서 메모리 주소레지스터로 명령이 전달된다. 6. 메모리주소 레지스터는 메모리에서 a라는 값을 가져와 명령어 레지스터로 전달된다. 7. 해당 값은 명령어 데이터로 전달되며 제어장치에서 해석이 된다. 8. b도 이와같이 처리되어 두 값은 누산기 에서 ALU로 들어가 연산된다. 9. 결과적으로 c라는 값을 산출 하게 된다. 배운 점 CPU의 전체적인 흐름을 알게되는 공부였다. 앞으로 더 상세히 알아봐야 할 것 같다.