<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Context Switching on Kelly Dev</title><link>https://kelly-chui.github.io/tags/context-switching/</link><description>Recent content in Context Switching on Kelly Dev</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 12 Jan 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://kelly-chui.github.io/tags/context-switching/index.xml" rel="self" type="application/rss+xml"/><item><title>OS. Context Switching</title><link>https://kelly-chui.github.io/posts/cs-os-context-switching/</link><pubDate>Sun, 12 Jan 2025 00:00:00 +0000</pubDate><guid>https://kelly-chui.github.io/posts/cs-os-context-switching/</guid><description>&lt;h2 id="컨텍스트-스위칭"&gt;컨텍스트 스위칭&lt;/h2&gt;
&lt;p&gt;CPU가 현재 실행 중인 프로세스나 스레드를 중단하고, 다른 프로세스나 스레드를 실행하는 과정. 멀티 태스킹 환경에서 하나의 CPU가 여러 작업을 번갈아 가며 처리할 수 있게 만들어 준다.&lt;/p&gt;
&lt;h3 id="언제-발생하나"&gt;언제 발생하나?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CPU 스케줄러가 다른 작업을 선택했을 때(그러면 다른 프로세스를 써야하니까)&lt;/li&gt;
&lt;li&gt;실행 중인 작업이 블로킹 되었을때 (I/ O같은게 들어왔다거나 할 때)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="과정"&gt;과정&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;현재 작업(프로세스, 스레드)의 컨텍스트를 저장한다.&lt;/li&gt;
&lt;li&gt;다음에 실행할 작업의 컨텍스트를 복원한다.&lt;/li&gt;
&lt;li&gt;CPU가 새로운 작업을 실행한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="코스트"&gt;코스트&lt;/h3&gt;
&lt;p&gt;컨텍스트 스위칭을 할 때, 상태를 저장하고 로드하는 과정에서 메모리 접근, 레지스터 저장, 복원과 같은 작업 때문에 시간과 자원을 사용하게 된다.&lt;/p&gt;</description></item></channel></rss>