컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 구조와 스택 오버플로우
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 구조와 스택 오버플로우
프로세스 구조와 스택 오버플로우 DATA에는 두가지 저장공간이 있다. BSS : 초기값이 없는 전역변수int global_data1; DATA : 초기값이 있는 전역변수int global_data2=0; 그 밖의 함수 안에 있는 지역변수는 Stack frame에 들어가게 된다.int main() { int *data; } ## 스택오버플로우 간단히 살펴보기 - 컴퓨터의 구조와 프로세스의 구조를 사용해 해킹하는데에 많이 이용되었다. - 할당된 6개의 저장 공간에, 각각 a를 저장하는데, 이때, aaaaacc로 입력을 하게되면, 저장 stack을 벗어난 그 다음의 stack위치에 값이 저장되게 된다. 이때, 해커들은 자신들이 설정해놓은 주소를 저장시켜, 해커 프로그램이 작동하도록 한다.
CS/운영체제(OS)
2021. 11. 27. 15:17
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 구조와 힙
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 구조와 힙
heap 은 동적으로 메모리를 생성하는 저장소 이다. 동적으로 메모리를 생성하는 함수에는 C언어에서 mallloc이 있으며, 아래 예시를 통해 heap에 저장공간이 어떻게 생성이 되며, stack은 어떻게 작동하는지를 살펴보았다. 왜 heap이라는 것이 필요할까? => 컴파일러 단에서 전역변수를 위한 공간을 미리 만들어 놓아 DATA에 저장을 시켜놓는데, malloc이라는 함수는 실행 코드 안에서 용량을 만드는 함수로, 이 저장 공간은 정적으로 알 수 없기, 때문에 HEAP이라는 동적 저장공간을 지원한다.
CS/운영체제(OS)
2021. 11. 27. 13:49
명이나물 라이브러리