운영체제

Jaehyeong Kwon·2022년 8월 5일
0

백엔드 로드맵 공부

목록 보기
10/11

💻운영체제


프로세스와 스레드 차이

프로세스는 메모리 상에서 실행 중인 프로그램을 말하며, 스레드는 프로세스 안에서 실행되는 흐름 단위를 말한다. 프로세스는 최소 하나의 스레드를 보유하고 있으며, 별도의 주소 공간을 독립적으로 할당받는다. ( code, data, heap, stack) 스레드는 stack만 따로 할당받고 나머지 영역은 스레드끼리 공유한다.

프로세스 : 자신만의 고유 공간과 자원을 할당받아 사용
스레드 : 다른 스레드와 공간과 자원을 공유하면서 사용

멀티 프로세스로 처리 가능한 것을 멀티 스레드로 하는 이유는?

프로세스 간의 통신(IPC)보다 스레드 간의 통신 비용이 적어 작업들 간 부담이 감소
프로세스를 생성하여 자원을 할당하는 시스템 콜이 감소하여 자원의 효율적 관리가 가능


교착 상태는 무엇이며 조건은 무엇인가?

교착 상태는 프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태를 말한다.
한정된 자원을 여러 곳에서 사용하려고 할 때 발생하는 문제이다

  • 비선점 : 프로세스가 어떤 자원의 사용을 끝날 때까지 자원을 뺏을 수 없음
  • 상호배제 : 프로세스들이 필요로 하는 자원에 대해 배타적 통제권을 요구함
  • 점유대기 : 프로세스가 할당된 자원을 가진 상태에서 다른 자원 기다림
  • 순환대기 : 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자우너을 갖고 있음.

메모리 할당 알고리즘

  • First fit : 크기가 충분한 첫번째 메모리에 할당
  • Next fit : 마지막으로 참조한 메모리 공간에서부터 탐색을 시작하여 공간을 찾음
  • Best fit : 모든 메모리 공간을 검사해서 내부 단편화를 최소하는 공간에 할당
profile
나무와 같이 성장하는 사람

0개의 댓글