[CS] 운영체제와 프로세스/스레드

yoon Y·2022년 4월 9일
0

1. 운영체제

하드웨어를 관리하고, 응용 프로그램과 하드웨어 사이에서 인터페이스 역할을 하며 시스템의 자원과 동작을 제어하는 시스템 소프트웨어

  • CPU를 점유해야 할 프로세스를 결정하고,
  • 실제로 CPU를 프로세스에 할당하며,
  • 프로세스 간 공유 자원 접근과 통신 등을 관리하게 된다.

프로그램: 실행파일
프로세스: cpu가 프로그램을 실행시키고 있는 상태
cpu: 프로그램을 실행시키는 주체
core: 는 cpu안에서 일하는 핵심 부품

CPU란?

  • cpu - 프로그램을 실행시키는 주체로 프로세서라고도 한다
  • core가 많을 수록 여러 프로세스 실행이 가능하다.
  • 주요 동작 과정
    1. 프로그램을 가져와서 (RAM → CPU)
    2. 디코더를 사용해 기계어로 해석해 풀어냄(컴파일)
    3. 해석된 파일을 실행시킴


2. 프로세스

프로세스 동작

  • 운영체제가 여러 개의 프로세스(멀티 프로세스)를 함께 돌리고 있다.
  • 동시적/병렬적/혼합의 방법을 이용한다
  • 운영체제는 프로세스마다 자원을 분할해 할당한다

동시성이란?

  • cpu에 코어 하나
  • 여러 프로그램을 돌면서 일부분을 연속적으로 실행시키는 것 (context switching)
  • 속도가 매우 빠르기 떄문에 동시적으로 진행되는 것처럼 느껴지는 것

병렬성이란?

  • cpu에 코어 여러개
  • 여러 프로그램을 병렬적으로 실행시킬 수 있는 것

3. 스레드

  • 프로세스 안에서 실행되는 여러 흐름 단위
    ex) 브라우저 한 탭(프로세스)안에서 음악 재생(스레드), 동영상 재생(스레드)을 할 수 있는 것
  • 스레드들은 프로세스마다 정해진 자원을 함께 사용한다 → 여러 스레드가 공통된 자원에 접근해 조작할 경우 에러가 발생한다
  • Code  : 프로그램 소스 코드 저장
  • Data  : 전역 변수 저장
  • Heap: 동적 변수 저장
  • Stack  : 함수, 지역 변수 저장

💡 함수가 실행되면 해당 함수가 실행될 환경이 stack에 쌓이는데, 위에서부터 꺼내져서 cpu가 실행시킨다


브라우저에서는? (크롬 기준)

  • 크롬은 1탭-1프로세스이다. (다중 프로세스 지원)
  • 프로세스는 메모리 영역이 독립적으로 할당된다.
  • 프로세스간에는 메모리 영역을 침범하지 않는다.
  • 위의 이유로 프로세스가 강제 종료 되어도 다른 프로세스에는 영향을 끼치지 않는다.
    → 그렇다면 크롬의 탭 중 하나가 강제 종료 혹은 실행 중지되어도 다른 탭에는 영향이 없다.

CPU란 무엇인가?
프로세스와 스레드
최신 브라우저의 내부 살펴보기

profile
#프론트엔드

0개의 댓글