최대 1 분 소요

User Stack

프로세스의 ‘User Mode’ 부분에서 실행되는 스택
각각의 프로세스가 가지는 ‘스택’ 영역이며
함수 호출 시 지역 변수, 매개 변수, 복구 주소 등이
User Stack에 저장된다

함수 호출 반환 시, 이러한 정보들을 이용하여
이전 상태로 복귀한다

‘가상 메모리 주소 공간’의 ‘스택’ 영역에 해당하는 부분이다

User Stack은 OS가 공간을 할당하여 만들어준다
(하지만 pintOS에선 내가 구현해야 한다)

Kernel stack

커널 모드에서 실행되는 커널 코드 스택
인터럽트, 예외 처리, 시스템 콜 등이 발생할 때,
커널 스택을 이용한다

가상 메모리 주소 공간의 ‘상위 부분’에 ‘커널 공간’이 존재하며
이 부분에 ‘커널 스택’이 존재한다

커널 스택은 ‘커널 모드’에서 작동하는 동안에만 사용된다
커널 코드로 인하여 작동하는 함수들의 매개변수, 복귀 주소, 지역 변수 등과
인터럽트, 프로세스 에 대한 데이터가 포함된다

  • 커널 공간
    커널 공간이 가지는 정보는 정말 다양하고 중요한 데이터를 포함한다
    프로세스 관리 : PCB(프로세스 제어 블록), 스케쥴러 관리 구조체, IPC
    메모리 관리 : 페이지 테이블, 메모리 할당 및 해제 정보
    파일 시스템 : 파일 디스크립터 테이블, 경로 와 파일 정보
    디바이스 관리 : 디바이스 드라이버, 인터럽트 관리 정보

    커널 공간은 운영체제의 핵심 기능을 지원하는 데이터가 포함되어 있음
    (논리적으로는 하나의 커널 공간이 존재)

R4tVn

댓글남기기