delpho

운영체제에 대하여 - 1 본문

CS

운영체제에 대하여 - 1

delpho 2022. 7. 24. 20:31

_1. 프로세스와 스레드의 차이를 설명해보세요.

 

프로세스는 프로그램 실행에 필요한 내용이 메모리에 적재되어 운영체제로부터 자원을 할당 받은 작업에 단위이며, 스레드는 프로세스 내에서 실행되는 흐름의 단위입니다. 프로세스 사이에서는 자원을 공유하지않지만, 스레드는 서로 Heap 영역의 자원을 공유합니다.

 

 

[ 프로그램, 프로세스]

프로그램

  • 어떤 작업을 하기 위해 처리방법과 순서를 기술한 명령문 집합체

 

프로세스

  • 프로그램 실행에 필요한 내용이 메모리에 적재되어 운영체제로부터 자원을 할당 받은 작업의 단위
  • 프로그램을 실행하면 프로세스 인스턴스가 생성!

 

 

[ 스레드 ]

  • 어떠한 프로세스 내에서 실행되는 흐름의 단위
  • 일반적으로 하나의 프로그램 👉 하나 이상의 프로세스 👉 하나 이상의스레드를 갖음!!
  • 스레드는 프로세스 내에서 각각 stack만 따로 할당받고 Code, Data, Heap 영역은 공유!
  • 같은 프로세스 안에 있는 여러 스레드들은 Heap 영역 공유

 

출처 https://inpa.tistory.com/entry/%F0%9F%91%A9%E2%80%8D%F0%9F%92%BB-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%E2%9A%94%EF%B8%8F-%EC%93%B0%EB%A0%88%EB%93%9C-%EC%B0%A8%EC%9D%B4

 

 

 

 

 

 


_2,. 컨텍스트 스위칭에 대해 설명해보세요.

 

 

 

 

[ 컨텍스트 스위칭 (Context Switching) ]

 

# 컨텍스트 스위칭

  • CPU가 어떤 프로세스를 실행하고 있는 상태에서 OS의 스케쥴러가 인터럽트를 진행하여 더 높은 우선순위를 가진 프로세스가 실행되어야 할 때, 스케쥴러가 레지스터에 저장된 기존 프로세스 값들을 커널 내부에 존재하는 PCB에 저장하고, 새 프로세스의 값을 PCB에서 다시 가져와서 교체하는 작업

 

 

# 콘텍스트 스위칭이 발생하는 상황

  1. 입/출력을 요청할 때
  2. CPU 사용시간이 만료되었을 때
  3. 자식 프로세스를 만들 때
  4. 인터럽트 처리를 기다릴 때

 

 

# OS에서의 컨텍스트

  • CPU가 해당 프로세스를 실행하기 위한 프로세스의 정보

 

 

# 단점

  • 잦게 발생할수록 오버헤드(Overhead) 비용이 발생하여 성능이 떨어짐
    • 오버헤드 : 사용된 시간과 사용된 메모리의 양

 

https://www.crocus.co.kr/1364

 

  • 위 그림에서, 프로세스 P0가 실행 중인 상태(excuting)에서 유휴 상태(idle)가 될 때 프로세스 P1이 곧바로 excuting이 되지 않고 idle을 좀 더 하다가 excuting이 된다.
    • 이유 👉👉 프로세스 P0의 상태를 PCB에 저장하고 프로세스 P1 상태를 PCB에서 가져와야 하기 때문
    • 그런데, 이 과정에서 PCB를 저장하고 가져올 때 CPU는 아무런 일도 하지 못하게 된다.

 

 

 

 

 

[ 간단 용어 정리 ]

 

인터럽트 (Interrupt)

  • CPU가 프로그램을 실행하고 있을 때 실행 중인 프로그램 밖에서 예외 상황이 발생하여 처리가 필요한 경우, CPU에게 알려 작동이 중단되지 않고 예외 상황을 처리할 수 있도록 하는 기능

 

스케줄러(Scheduler)

  • 어떤 프로세스에게 자원을 할당할지 순서와 방법을 결정하는 운영체제 커널의 모듈을 지칭

 

레지스터(Register)

  • n-bit의 정보를 저장할 수 있는 고속도의 기억장치를 말한다.
  • CPU에서는 외부 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하고 이동하는 고속도의 기억장치로 사용

 

 

커널(Kernal)

  • 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고 그렇지 않은 부분은 필요할 때 메모리에 올려서 사용하게 되는데, 이때 메모리에 상주하는 운영체제의 부분을 커널이라 한다.
  • 운영체제도 소프트웨어라서 메모리에 올라가야 하나 규모가 큰 프로그램이기 때문에 모두 올라간다면 한정된 메모리 공간의 낭비가 심할 것이기 때문에 커널로 분리해둔 것

 

PCB(Process Control Block)

  • 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영 체제 커널의 자료 구조를 말한다.
  • 그 정보에는 프로세스 번호, 포인터, 프로세스 상태, 레지스터, 프로그램 카운터(코드 위치) 등이 있다.

 

 

 

 

 

 

 


출처

https://inpa.tistory.com/entry/%F0%9F%91%A9%E2%80%8D%F0%9F%92%BB-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%E2%9A%94%EF%B8%8F-%EC%93%B0%EB%A0%88%EB%93%9C-%EC%B0%A8%EC%9D%B4

 

👩‍💻 프로세스 vs 쓰레드 차이 정리

프로세스(Process) 프로세스라는 명칭은 낯설수 있는데, 프로그램은 친숙하리라 생각된다. 우리가 흔히 말하는 프로그램이 실행되면 프로세스 인스턴스가 생성된다. 인스턴스가 생성된다는 의미

inpa.tistory.com

https://beststar-1.tistory.com/26

 

콘텍스트 스위칭(Context Switching)

멀티스레드의 동시성(Concurrency) 동작 방식에 대해 간략히 다룬 적이 있었다. beststar-1.tistory.com/24 스레드(Thread) - 멀티스레드의 동시성(Concurrency)과 병렬성(Parallelism) 멀티스레드의 동시성(Concu..

beststar-1.tistory.com

 

'CS' 카테고리의 다른 글

운영체제에 대하여 - 3  (0) 2022.07.27
운영체제에 대하여 - 2  (0) 2022.07.24
자료구조에 대하여 - 2  (0) 2022.07.06
자료구조에 대하여 - 1  (0) 2022.07.05
네트워크에 대하여 - 3  (0) 2022.06.29