본문 바로가기

OS

[운영체제] 시험대비 - 2강~5강 (Process, Scheduling Basics, Advanced Scheduling Scheme, Memory And Address Space)

2강. Process

  • process 구성 요소
    • register → program counter, stack pointer
    • memory → (address space)
  • context switch
    • kernel starck에 중요한 register 값을 저장
      • General purpose of registers
      • PC
      • kernel stack pointer
    • 곧 실행될 프로세스를 kernel stack에 담음
    • 곧 실행될 kernel stack으로 switch
  • Direct execution → Limited Direct Execution
    • interrupt : OS는 concurrency 보장 위해 interrupt 차단하는 기능을 수행해줌
    • user-kernel mode 분리: OS에게 precvilege 부여

3강. Scheduling Basics

  • Metric
    • Turnaround time: T_completion - T_arrival(프로세스 도착 시간)
    • Response time: T_firststart - T_arrival
    • Fairness: 단위 시간당 완료된 프로세스 수
    • Deadline: Turnaround time < Completion time
  • Non-preemptive scheduling
    • FIFO
    • SJF: 가장 짧은 job부터 → turnaround time good!
  • preemptive scheduling
    • STCF: 새 job들어온 시점에서 끝나는 시간을 다시 계산 (기존vs.new)→ preemptive하게 : turnaround time good!
    • Round Robin → turnaround time bad
  • Incorporate I/O
    • I/O작업 수행시 프로세스가 running → blocked(sleep)
  • MLFQ
    • Rule 1: Priority(A) > Priority(B) : A 실행
    • Rule 2: Priority(A) = Priority(B) : Round Robin
    • Rule 3: 새 job 들어오면 가장 높은 priority 부여
    • Rule 4: 할당 개수 다 쓰면 강등
    • Rule 5: 일정 time peroid 지나면 system 모든 작업을 최상단 priority로 올려준다

4강. Advanced Scheduling Scheme

  • Fair share scheduler → Lottery Scheduling
    • ticket transer
    • ticket inflation : CPU time 더 필요할 때 일시적으로 자신을 부풀리는 것을 의미
  • Stride Scheduling : Stride = N / Ticket
  • Cache Coherence : Cache 일관성을 위해 bus snoofing을 통해 process 별 cache 값을 변화시키는 것
  • Cache Affinity : 동일 프로세스 → 동일 CPU

5강. Memory and Address Space

  • Memory Leak : heap의 메모리 영역이 새는 것 → why? heap에서 사용 가능한 용량을 넘어버렸기 때문
  • Dangling Pointer : Memory Freeing before it is finished using
  • Dynamic allocation : base and bound register로 address translation진행
    • address translation 실행 위치 : CPU 내 MMU
    • base register & bound register → CPU 내 MMU에 위치 (hardware의 도움을 받는다)
    • base register : process 가상 주소 공간에 매핑될 물리 주소 시작값 get
    • bound register : 가상 주소 공간 상한을 담아두는 레지스터 (특정 값보다 크다? ERROR)
    • Instruction Fetch
    • Execute
  • 주소 변환을 위해 Hardware가 지원하는 것
    • Previleged mode : kernal, user mode
    • base, bound register
    • base, bound register로 가상 주소 변환, 잘못된 가상 주소 check
    • 오류 발생했을 때 처리할 수 있는 능력
    • raise exception 하는 능력
  • OS가 주소 변환 시 해야 할 일
    • 빈 공간 관리하기 → 프로세스의 새 주소 공간 위해 실제 메모리에서 공간 찾아야 함
    • 프로세스 종료 → 프로세스가 사용하던 공간 회수
    • context switch 일어날 때마다 프로세스의 base, bound 레지스터의 정보가 필요 (당연 실제 메모리 주소에서 매핑된 가상 주소 공간 찾아가려면 그러겠찌) → 프로세스 구조나 정보를 PCB에 저장해둠! (base and bound 역시 PCB에 저장해버리는겨)
      • 프로세스 중지 시
        • 프로세스의 스케줄링 취소
        • 현재 위치에서 새 위치로 주소 공간 복사
        • 저장해둔 base 레지스터 정보로 base레지스터 업데이트하여 새 위치 가리킴
    • 예외발생했을 때 호출할 핸들러 or 함수
반응형