코딩요
쉬운코드 기술 블로그
코딩요
전체 방문자
오늘
어제
  • 분류 전체보기 (54)
    • 개발자로 성장하기 (11)
    • 컴공 (25)
      • 운영체제 (12)
      • 알고리즘 (1)
      • 데이터베이스 (11)
      • 네트워크 (1)
    • 쉬운코드 (15)
      • 쉬운코드 소개 (6)
      • 쉬운코드 영상 보는 법 (3)
      • 쉬운코드 정정 보고서 (1)
      • 쉬운코드 스토리 (4)
      • 기타 이것저것 (1)
    • 면접 tip (3)

공지사항

  • 아이폰 앱에서는 슈퍼땡스 보내지 말아주세요ㅠㅠ
  • 쉬운코드 멤버십을 소개합니다
  • 쉬운코드 운영 철학

인기 글

hELLO · Designed By 정상우.
글쓰기 / 관리자
코딩요

쉬운코드 기술 블로그

[OS] 멀티태스킹(multitasking)이란?
컴공/운영체제

[OS] 멀티태스킹(multitasking)이란?

2022. 10. 26. 18:18

멀티태스킹 ?

 

쉽게 설명하기 위해 싱글 코어 CPU로 예를 들겠다

한 컴퓨터에서 여러 프로세스나 스레드를 동시에 실행하고 싶은데 싱글 코어 CPU에서는 한 번에 하나의 프로세스 혹은 스레드만 실행될 수 있다는 제약이 있다

그러면 어떻게 동시에 실행하게 만들 수 있을까?

 

이 문제를 해결하는 방식이 멀티태스킹(multitasking) 방식이다

 

 

 

 

예를 들어 스레드 t1, t2, t3가 있다고 가정해 보자 (각 스레드가 같은 프로세스 소속인지 아닌지는 중요하지 않다)

 

멀티태스킹 방식은 (간단하게 설명해서) 이 세 개의 스레드들에게 아주 짧은 CPU 시간을 할당해 주고,

 

그 시간을 다 사용하면 다음 스레드가 실행될 수 있도록 하는 방식이다

 

 

 

멀티태스킹 방식. CPU를 아주 짧은 시간 간격으로 번갈아 가며 실행하는 방식이다

 

 

 

그리고 이때 각 스레드마다 동일하게 부여되는 CPU 시간을 time slice 혹은 quantum 이라고 부른다

 

이 time slice는 몇십 ~ 몇 milliseconds 정도로 매우 짧은 시간이라서

여러 스레드들이 이렇게 짧은 시간 간격으로 번갈아 가면서 CPU에서 실행되면

사용자 입장에서는 마치 여러 스레드가 동시에 실행되는 것 같은 느낌을 준다

 

그래서 멀티태스킹 방식은 사용자에게 빠른 응답성을 주는 최적화된 방식이다

 

 

 

 

 

 

 

 

쉬운코드는 본질에 충실합니다

 

 

 

 

 

👉 프로세스와 스레드 차이 설명 글 보러 가자

 

👉 프로세스, 스레드, 멀티프로그래밍, 멀티태스킹, 멀티스레딩, 멀티프로세싱 한번에 알려주는 영상 보러 가자

 

 

 

 

 
저작자표시 비영리 변경금지 (새창열림)
    '컴공/운영체제' 카테고리의 다른 글
    • 스핀락(spinlock)을 최대한 안쓰는게 좋은 이유
    • 멀티태스킹에서 CPU time slice는 고정일까?
    • 프로세스와 스레드의 관계를 바라보는 두 가지 세계관
    • 프로세스는 최소한 하나의 스레드를 가진다 (맥북에서 확인하기)
    코딩요
    코딩요
    8년차 백엔드 개발자가 이해하기 쉽게 설명합니다. 배워서 남주는 블로그! 이해하기 쉬운 기술 블로그! 쉬운코드입니다 :)

    티스토리툴바