본문 바로가기
학부공부/OS_운영체제

11. bss [Interesting topic to study]

by sonpang 2021. 11. 12.
반응형

안녕하세요. 오늘은 bss에 대해서 알아볼까 합니다.

2021.11.12 - [학부공부/운영체제] - 10. Process(1)

 

10. Process(1)

안녕하세요. 오늘은 process에 대해서 알아보는 시간을 가질까 합니다. 저번 포스팅에선 운영체제 내용을 이해하는데 필요한 기초적인 컴퓨터과목 내용을 소개하는 시간을 가졌는데요. 2021.11.08 -

ku320121.tistory.com

 

이 포스팅에서 프로세스에 대한 기초적인 내용을 소개하면서 bss를 공부해볼만한 흥미로운 주제로 선정하였습니다.

 

Topic [Interesting topic to study]

 

위와 같은 형식으로 된 topic이 제가 독학하면서 공부해보면 좋겠다고 생각한 부분들입니다. 모든 내용까지는 저의 부족함으로 cover를 못 할 수 있지만 노력해보려고 합니다. 이전에도 Hypervisor, System call과 같이 읽어보면 좋을만한 내용을 소개해드렸으니 참고하시면 좋겠습니다.

 

 

11.01. bss Segment

 

stdin pointer form + 추가한 초기화되지 않은 전역 변수 + 정적 변수

 

컴퓨터 프로그래밍에서 .bss 또는 bss는 수많은 컴파일러와 링커가 처 음에 0 값의 비트로 표현되는 정적으로 할당된 변수를 포함하는 데이터 세그먼트의 한 부분으로 사용한다. "bss 섹션"(bss section), "bss 세그먼트"(bss segment)라고도 부른다. 일반적으로 데이터가 없는 bss 섹션의 길이만이 오브젝트 파일에 저장 된다. 프로그램 로더는 프로그램을 로드할 때 bss 섹션을 위한 메모리 를 할당하고 초기화한다. 운영 체제는 zero-fill-on-demand라는 기술을 사용하여 bss 세그먼트를 효율적으로 구현한다. (McKusick & Karels 1986) 임베디드 소프트웨어에서 bss 세그먼트는 main()에 들 어가기 전에 C 런타임 시스템에 의해 0으로 초기화되는 메모리로 매핑된다.

 

Zero-fill on demand를 ZFOD라고도 하네요.(잘 쓰는 표현은 아닌 것 같습니다. 하여튼 컴퓨터 공학 분야에서 공부할 때 줄임말보다는 full word를 쓰는게 좋다고 생각하는 사람입니다.) Copy on write의 specail case라고 합니다. 사실 프로세스 pages 중 blank로 처리되어야 할 부분들이 좀 있죠.(All of bss, New heap pages, New stack pages) zero frame이 있고 물리적으로 read만 자유롭게 할 수 있다고 생각하면 될 것 같습니다. Writes는 page faults와 cloning을 발생시키겠군요.

 

 

11.02. Another Segment

Text Segment(Code)

프로그램. 변수가 아닌 code만 저장되어 있고 읽기만 가능합니다.

 

Data Segment

초기화된 전역 변수와 정적 변수가 저장됩니다.

 

Heap Segment

직접 할당한 메모리가 저장되는 영역으로 사용자의 쓰임에 따라 크기가 가변적이고 보통 메모리의 낮은 주소에서 높은 주소 방향으로 증가합니다.

 

Stack Segment

지역 변수와 SFP, RET등 각종 정보들이 저장하는 영역으로 FILO 구조죠.(SFP는 Stack의 base 값입니다. 주소값을 계산할 때 현재 stack값의 기준을 잡을 때 필요한 frame pointer값을 저장합니다. RET은 반환 주소값입니다. 왜 필요한지는 컴퓨터 구조 과목에서 배웠을 수도 있겠군요.) Heap Segment와 마찬가지로 크기가 가변적입니다. 다만, Heap Segment와 반대 방향으로 저장되겠네요.

 

 

 

반응형

'학부공부 > OS_운영체제' 카테고리의 다른 글

13. Garbage collector [Interesting topic to study]  (0) 2021.11.15
12. Process(2)  (0) 2021.11.15
10. Process(1)  (0) 2021.11.12
09. 운영체제와 컴퓨터 구조(2)  (0) 2021.11.08
08. 운영체제와 컴퓨터 구조(1)  (0) 2021.11.08

댓글