Calling Convention과 Stack 콜링 컨벤션과 스택 [ Calling Convention ] Calling Convention : 내부 및 외부 함수 호출을 위한 규칙. : 세부적인 정보는 시스템에 따라 다름. [ Procedure Call ] · Caller : Callee를 호출. · Callee : Caller를 통해 호출당한 함수. : 항상 복귀가 필요. → 복귀 주소를 항상 Stack에 저장. ( 이 Stack을 Call Stack 또는 Run-time Stack이라고 한다. ) ( jmp instruction과의 차이 : 조건문, 반복문 등에서 사용되던 jmp는 복귀가 강제되지 않았다. ) : Caller와 Callee는 같은 Register를 사용. void bfs()// ca..
Status Register 상태 레지스터 [ Status Register ] Status Register : Flag Register 또는 PSW(Program Status Word)라고도 부른다. : CPU의 현재 상태 정보를 저장 : 컨디션 코드(Condition Code), 인터럽트 마스크(Interrupt Mask), 특권 레벨(Privilege Level) 등 Condition Code : 가장 최근에 실행한 산수연산에 대한 정보를 저장하는 Flag의 집합. : 연산 이후 자동적으로 저장됨. : Single Bit로 구성되어있다. : %eflags 레지스터에 존재. · CF : Carry Flag · ZF : Zero Flag · SF : Sign Flag · OF : Overflow Flag..
File Structure & I/O 파일 구조체와 I/O [ File ] File : Byte들의 Sequence. : 모든 I/O Device도 File로 취급. : File은 Position(Offset) 정보를 가지고 있음. · Regular File : 임의의 데이터가 포함된 파일. : Text File과 Binary File로 구분한다. ( Binary File의 경우 Object File이나 Image File 등을 말한다. Kernel은 이 둘의 차이를 인지하지 못함 ) · Directory : 파일을 구분하기 위해 사용되는 이름공간(namespace). : File Name과 Inode Number로 구성되어 있다. ( inode는 index node라는 뜻 ) : .은 현재 디렉토리, ..
Signal 시그널 [ Signal ] Signal : 시스템에서 발생하는 이벤트에 대한 작은 Message. : Kernel이 목적지 프로세스(Destination Process)에 Signal Number를 전송. : 프로세스 및 Kernel이 다른 프로세스를 중단하는 것을 허용. : 소프트웨어 인터럽트(Software Interrupt)라고 하는 인터럽트의 한 종류이다. Pending & Blocked Bits : Kernel은 각 프로세스에서 Pending과 Blocked Bit를 유지. · Pending : Signal이 보내졌지만 아직 도착하지 않은 상태를 표시. → 처리 대기중인 Signal. ( Signal 전송 → Pending Bit Set ) : 이벤트가 전송되면 Set, 도착(Rec..
Process의 생성과 종료 [ Process 생성 ] · Directed : 지시된 프로세스 생성. : PCB 초기화. · Cloning : 정확한 복제본 생성. : 부모의 가상 주소의 복사본을 가져옴. → Code, Stack, Heap, Register 등등 동일하지만, Pid는 다름. : fork() 시스템 콜로 실행. → Process Spawning이라고 함. : 서로 분리된 State로 진행. → 서로 독립적. : Parent와 Child의 실행순서는 비결정적. : 한 번의 호출로 두 번의 반환이 일어난다. → Call once, return twice ( 부모 프로세스는 자식 프로세스의 pid를,자식 프로세스는 0을 Return ) : 프로세스 생성 속도가 빠르고, 추가 작업 없이 자원 상..