[LinuxProgramming] Chapter 10. 메모리 관리 리눅스 프로그래밍 원리와 실제 - 창병모 교수님 10.1 변수와 메모리 1) 프로세스 - 프로세스 프로세스는 실행 중인 프로그램 프로그램 실행을 위해서는 프로그램의 코드, 데이터, 스택, 힙, U-영역 등이 필요 프로세스 이미지(구조)는 메모리 내의 프로세스 레이아웃 프로그램 자체가 프로세스는 아님 - 프로세스 구조 코드 세그먼트 기계어 명령어 데이터 세그먼트 static, 전역변수가 저장됨 스택(stack) 함수 호출과 관련 지역 변수, 매개 변수, 반환 주소, 반환값 등 잦은 함수 호출 시 메모리 공간 부족으로 stack overflow 발생 힙(heap) 동적 메모리 할당 malloc() in C new class() in java..
Chapter 07. 파일 및 레코드 잠금 리눅스 프로그래밍 원리와 실제 - 창병모 교수님 7.1 파일 잠금 1) 파일 및 레코드 잠금의 필요성 - 프로세스 사이에 데이터는 한 프로세스가 파일에 쓴 내용을 다른 프로세스가 읽음으로써 데이터를 주고받을 수 있음 - 문제점 한 프로세스가 파일 내용을 수정하는 동안에 다른 프로세스가 그 파일을 읽는 경우 두 개의 프로세스가 하나의 파일에 동시에 접근하여 데이터를 쓰는 경우 - 잠금(lock): 한 프로세스가 그 영역을 읽거나 수정할 때 다른 프로세스의 접근을 제한 잠근된 영역에 한 번에 하나의 프로세스만 접근 특히 레코드 쓰기(혹은 수정)를 할 경우 대상 레코드에 대해 잠금을 해서 다른 프로세스가 접근하지 못하게 해야 함 접근하는 프로세스 A가 대상 레코드에 ..