CS/System Programming (2021-2)7 [시스템 프로그래밍] Parallel CNN 학교에서 수행한 과제를 정리하는 차원에서 적어보는 글 입니다. 문제될시 알려주시면 삭제하겠습니다. Convolutional Neural Networks 1. CNN 이란 무엇인가? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번 학교 시스템프로그래밍 과제로 CNN(Convolutional Neural Networks)를 만들어보는 시간을 갖게 되었다. CNN이란 간단히 말하면 딥러닝에서 여러 사물의 이미지를 인식시킨후, 예시를 보여주어 이것이 무엇에 해당하는지를 이전에 학습한 데이터에서 찾아 ouput을 도출하는 것이다. 우리는 그중에서 convolution layer와 pooling layer를 구현하는것이 수업 과제였다. C를 기반으로 Linux환경에서 Messa.. CS/System Programming (2021-2) 2022. 1. 19. [시스템 프로그래밍] wait 함수 내가 공부한후 후에도 참고할겸 작성하는 글 입니다. 리눅스 시스템프로그래밍 2판을 참고하였습니다. 참고로 저는 WSL2 환경에서 공부중 입니다. 1. wait 이란 무엇인가? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 보편적으로 부모 process는 자식 process들중 어떠한 하나가 종료되었을때 자식에 대한 좀더 많은 정보를 얻고자 한다. 만일 자식 process가 종료될때 완전히 사라진다면 예상할수 있듯 부모 process에서 조사할 수 있는 정보마저 사라진다. 따라서 UNIX의 초기 설계자들은 자식 process가 부모 process보다 먼저 죽을 경우 커널이 자식 process를 특수한 Zombie process 상태로 바꾸도록 설계하였다. Zombie pr.. CS/System Programming (2021-2) 2022. 1. 19. [시스템 프로그래밍] Zombie Process : 좀비 프로세스 내가 공부한후 후에도 참고할겸 작성하는 글 입니다. 리눅스 시스템프로그래밍 2판을 참고하였습니다. 참고로 저는 WSL2 환경에서 공부중 입니다. 1. Zombie process 란 무엇인가? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 process가 실행을 마쳤지만 부모process에서 종료코드를 읽어가지 않은, 즉 여전히 시스템의 resource를 소비하고 있는 상태이다. 원래 child process가 종료된 경우 부모process가 child process의 뒷처리 작업(reaping) 을 해주어야 정상적으로 종료가 되는데, child process가 종료후 parent가 정리작업을 하지않은 상태를 말한다. 좀비 process는 최소한의 기본 뼈대만 유지할만.. CS/System Programming (2021-2) 2022. 1. 19. [시스템 프로그래밍] fork 함수 내가 공부한후 후에도 참고할겸 작성하는 글 입니다. 리눅스 시스템프로그래밍 2판을 참고하였습니다. 참고로 저는 WSL2 환경에서 공부중 입니다. 1. fork란 무엇인가? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 간단히 새로운 process를 만드는 것인대 exec와 다른점이 있다면 parent process를 그대로 유지하면서 child process가 따로 생기는 것 이다. 두 프로세스 모두 계속 실행 상태이며 fork()로 인해 생성된 process는 아무일도 없었던 것처럼 계속 실행된다. 2. 함수의 정의 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 ▶ 우선 함수의 prototype을 알아본후 하나씩 설명해 나가겠다 ▶.. CS/System Programming (2021-2) 2022. 1. 19. [시스템 프로그래밍] exec 함수들 내가 공부한후 후에도 참고할겸 작성하는 글 입니다. 리눅스 시스템프로그래밍 2판을 참고하였습니다. 참고로 저는 WSL2 환경에서 공부중 입니다. 1 exec 함수란 무엇인가? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 간단히 새로운 process가 실행되는 것 이다. 기존에 실행되고 있던 process의 내용을 대체한다음 program counter를 초기화후 다시 main함수의 첫부분부터 새롭게 읽어들인다. 새로운 프로그램의 실행(executing)이라 하며 이 기능은 exec류 시스템 콜에서 제공한다. 2 함수의 정의 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 ▶ 우선 함수의 prototype을 알아본후 하나씩 설명해 나가겠다.. CS/System Programming (2021-2) 2022. 1. 19. [시스템 프로그래밍] Process : 프로세스 내가 공부한후 후에도 참고할겸 작성하는 글 입니다. 참고로 저는 WSL2 환경에서 시스템프로그래밍을 공부중 입니다. 1. Process란 무엇인가? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 우선 전공서적에서 찾아보면 process는 Operating system's abstraction for a running program이라 나와있는대, 이를 그대로 직역하면 "운영체제에서의 실행중인 프로그램을 추상화 한것" 이라 번역할수 있겠다. 간단히 설명을 덧붙혀 보면 우리가 사용하는 윈도우os상에서 Excel 프로그램(program)을 실행하면 하나의 실행중인 Excel process가 생성된다. 당연히 여러 Excel 창을 띄워놓고 동시에 멀티테스킹을 하는것은 여러 pr.. CS/System Programming (2021-2) 2022. 1. 19. Vim 에디터 사용법 (vi 에디터) 내가 공부한후 후에도 참고할겸 작성하는 글 입니다. 참고로 저는 WSL2 환경에서 vi를 사용하는 중 입니다. 1) ViI? VIM? VIM이란 vi_Improved 의 약어로써 VI 에디터에다 편리하면서 막강한 기능들을 추가한 에디터이다. 대부부분의 리눅스 베포판들은 기본에디터로 VIM이 설치되어있으며, VI 명령으로 alias되어있다. 즉 VI를 실행하면 자동적으로 VIM이 실행된다. 그럼 이러한 에디터는 왜 사용하는것 인가? 기존의 GUI환경의 VScode등이 더 편하지 않은가? 1) 키보드만으로 모든것을 해결할수 있다. 처음이 어려워 그렇지 적응하고 사용하다보면 그 효율성이 아주 뛰어난 에디터이며 모든 리눅스에 설치되어있기에 매우 간편하다. 또 마우스가 전혀 필요없기에 노트북하나 만드로도 모든것을.. CS/System Programming (2021-2) 2022. 1. 18. 이전 1 다음