SlideShare a Scribd company logo
1 of 5
🔍 Context Switching
장소희
CPU 1CPU 2 CPU 3
Process B
Process A
Process C
🚨 인터럽트 발생 🚨
📌 입출력 요청
📌 CPU 사용 시간 만료
📌 자식 프로세스 생성
📌 인터럽트 처리 대기
CPU 1CPU 2 CPU 3
Process B
Process A
Process C
Process Z
Context Switching❓
CPU가 프로세스 실행하기 위해 필요한 정보
• CPU가 실행할 프로세스의 교체
• 실행 종료할 프로세스 Context를 해당 프로세스 PCB에 업데이트
• 다음 실행할 프로세스 Context를 메인 메모리에 올려 CPU에서 실행
• 잦은 Context Switching은 효율 저하를 초래
• 실행 중인 프로세스의 정보는 CPU 내부 레지스터에서 관리
PCB❓
• Process Control Block
1) 프로세스 식별자(Process ID)
2) 프로세스 상태(Process State) : 생성(create), 준비(ready), 실행 (running), 대기(waiting), 완료(terminated)
3) 프로그램 계수기(Program Counter) : 이 프로세스가 다음에 실행할 명령어의 주소
4) 사용 중인 레지스터 정보
5) CPU 스케줄링 정보 : 우선 순위, 최종 실행시각, CPU 점유시간 등
6) 메모리 관리 정보(Memory limits) : 사용 가능한 메모리 공간 정보
7) 입출력 상태 정보 : 프로세스에 할당된 입출력장치 목록, 사용 파일 목록 등
8) 포인터 : 부모 프로세스에 대한 포인터, 자식 프로세스에 대한 포인터, 프로세스가 위치한 메모리 주소에 대한 포인터, 할당된 자원에 대한 포인터 정보
• 운영체제 커널 영역에 존재
• 프로세스 생성 시 함께 생성, 종료 시 제거

More Related Content

Similar to [OS] Context switching

비트코인 소스 구조분석
비트코인 소스 구조분석비트코인 소스 구조분석
비트코인 소스 구조분석ryanhuh
 
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중20170908 tech day-9th-재미없는 java runtime process 디버그-김성중
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중ymtech
 
백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나Daniel Shin
 
[241] 하나의 cpu 에 운영제체 두 개 김성민
[241] 하나의 cpu 에 운영제체 두 개 김성민[241] 하나의 cpu 에 운영제체 두 개 김성민
[241] 하나의 cpu 에 운영제체 두 개 김성민NAVER D2
 
로거넷 LoggNet 프로그램 설정 정보 (사용자 교육 자료 CR3000)
로거넷 LoggNet 프로그램 설정 정보 (사용자 교육 자료 CR3000)로거넷 LoggNet 프로그램 설정 정보 (사용자 교육 자료 CR3000)
로거넷 LoggNet 프로그램 설정 정보 (사용자 교육 자료 CR3000)Lee Sang-Ho
 

Similar to [OS] Context switching (6)

비트코인 소스 구조분석
비트코인 소스 구조분석비트코인 소스 구조분석
비트코인 소스 구조분석
 
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중20170908 tech day-9th-재미없는 java runtime process 디버그-김성중
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중
 
System+os study 3
System+os study 3System+os study 3
System+os study 3
 
백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나
 
[241] 하나의 cpu 에 운영제체 두 개 김성민
[241] 하나의 cpu 에 운영제체 두 개 김성민[241] 하나의 cpu 에 운영제체 두 개 김성민
[241] 하나의 cpu 에 운영제체 두 개 김성민
 
로거넷 LoggNet 프로그램 설정 정보 (사용자 교육 자료 CR3000)
로거넷 LoggNet 프로그램 설정 정보 (사용자 교육 자료 CR3000)로거넷 LoggNet 프로그램 설정 정보 (사용자 교육 자료 CR3000)
로거넷 LoggNet 프로그램 설정 정보 (사용자 교육 자료 CR3000)
 

[OS] Context switching

  • 2. CPU 1CPU 2 CPU 3 Process B Process A Process C 🚨 인터럽트 발생 🚨 📌 입출력 요청 📌 CPU 사용 시간 만료 📌 자식 프로세스 생성 📌 인터럽트 처리 대기
  • 3. CPU 1CPU 2 CPU 3 Process B Process A Process C Process Z
  • 4. Context Switching❓ CPU가 프로세스 실행하기 위해 필요한 정보 • CPU가 실행할 프로세스의 교체 • 실행 종료할 프로세스 Context를 해당 프로세스 PCB에 업데이트 • 다음 실행할 프로세스 Context를 메인 메모리에 올려 CPU에서 실행 • 잦은 Context Switching은 효율 저하를 초래 • 실행 중인 프로세스의 정보는 CPU 내부 레지스터에서 관리
  • 5. PCB❓ • Process Control Block 1) 프로세스 식별자(Process ID) 2) 프로세스 상태(Process State) : 생성(create), 준비(ready), 실행 (running), 대기(waiting), 완료(terminated) 3) 프로그램 계수기(Program Counter) : 이 프로세스가 다음에 실행할 명령어의 주소 4) 사용 중인 레지스터 정보 5) CPU 스케줄링 정보 : 우선 순위, 최종 실행시각, CPU 점유시간 등 6) 메모리 관리 정보(Memory limits) : 사용 가능한 메모리 공간 정보 7) 입출력 상태 정보 : 프로세스에 할당된 입출력장치 목록, 사용 파일 목록 등 8) 포인터 : 부모 프로세스에 대한 포인터, 자식 프로세스에 대한 포인터, 프로세스가 위치한 메모리 주소에 대한 포인터, 할당된 자원에 대한 포인터 정보 • 운영체제 커널 영역에 존재 • 프로세스 생성 시 함께 생성, 종료 시 제거