시스템 (3) 썸네일형 리스트형 [시스템 프로그래밍] 프로그램과 프로세스 목차1. 들어가며2. 프로그램과 프로세스3. 프로세스 메모리4. 스택프레임5. 마치며 들어가며 프로그램과 프로세스는 시스템 프로그래밍 과목에서 초반부에 다뤄지는 내용이며 면접 질문으로도 종종나오는 주제이다. 오늘은 프로그램과 프로세스, 그리고 프로세스 메모리와 스택프레임의 개념까지 더하여 프로그램의 전체적인 흐름을 정리해보려고 한다. 프로그램과 프로세스더보기 프로그램이란 무엇일까? 프로그램의 사전적 정의는 어떤 작업을 하기위해 해야할 일들을 순서대로 나열한 것이다. 단순히 파일 시스템에 존재하는 실행파일을 의미한다. ex) Window 기준 .exe 파일 그렇다면 프로세스란 무엇인가? 위키백과에서는 프로세스에 대해 다음과 같이 정의하였다. 프로세스(process)는 컴퓨터에서 연속적으로 .. [시스템 프로그래밍] - Window / 커널 오브젝트(kernel object) 학교에서 리눅스 시스템 프로그래밍에 대해서는 수강하였으나 윈도우 시스템 프로그래밍은 따로 배우지 않아서 자료를 찾다보면 윈도우에서 사용하는 시스템 용어들이 나오면 당황스러울 때가 많았다. 그중에서 꼭 알아야 한다고 생각하는 것은 커널 오브젝트라는 용어 였다고 생각하였다. https://ko.wikipedia.org/wiki/%EC%BB%A4%EB%84%90_(%EC%BB%B4%ED%93%A8%ED%8C%85) 커널 (컴퓨팅) - 위키백과, 우리 모두의 백과사전 ko.wikipedia.org 우선 커널이란 용어가 상당히 포괄적인 단어라고 생각한다. 저번 학기 시스템 프로그래밍 교수님께서 커널과 운영체제를 구분지어서 보는 경우도 있지만 대부분의 경우에 커널을 운영체제라 생각해도 무방하다! 라고 언급을 하셨던.. [시스템 프로그래밍] - Linux / 파일 시스템 리눅스 시스템 프로그래밍에서 파일 시스템에서 file IO에 대해 배울 때 가장 많이 언급 되었던 것이 inode라는 개념이었다. 위 이미지에서 알 수 있듯이 리눅스에서 파일을 다룰 때에는 실제 파일 데이터와 그 데이터를 가리키는 inode가 존재한다. 이 inode는 파일에 대한 정보라 불리는 metadata이며 프로그래밍적으로 생각해보면 파일을 가리키는 일종의 포인터이다. 이 inode와 data는 운영체제에의해 구역이 나뉘어서 블럭단위로 저장된다. 또한 저장될 때, 디렉토리 파일의 내부에 inode의 값을 같이 저장한다. 이 때문에 특정 디렉토리의 특정 파일을 찾고자 하는 경우, 그림과 같이 경로를 이용하여 원하는 파일의 inode를 찾을 때까지 계속해서 참조하여 들어가는 것을 확인 할 수 있다. .. 이전 1 다음