inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[인프런워밍업클럽] 2주차 발자국 미션

노을
0

섹션4 프로세스 동기화

유닛 1 프로세스간 통신

프로세스는 독립적으로 실행 or 다른 프로세스와 데이터를 주고 받으며 통신

통신은 한 컴퓨터 내에서 실행되고 있는 다른 프로세스와 할 수도 있고, 네트워크로 연결된 다른 컴퓨터에 있는 프로세서와 할 수 도 있음

종류

  1. 한 컴퓨터 내에서 통신

    • 파일과 파이프

      • 파일

        • 통신을 하려는 프로세스들이 하나의 파일을 이용해 읽고 쓰는 방법

      • 파이프

        • 운영체제가 생성한 파이프를 이용해 데이터를 읽고 쓰는 방법

    • 스레드

      • 코드, 데이터, 힙 영역을 공유하고 스택만 각자 자기의 것을 가지고 있음

      • 데이터 영역에 있는 전역변수나 힙을 이용하면 통신이 가능

    • 네트워크

      • 운영체제가 제공하는 소켓통신이나 다른 컴퓨터에 있는 함수를 호출하는 RPC(원격 프로시저 호출)를 이용해 통신

유닛2 공유자원과 임계구역

공유자원

문제

임계구역

경쟁조건

임계구역 문제 해결 방법

유닛3 세마포어

프로세스 : 프린트를 사용하려는 직원, 프린터는 여러 프로세스들이 같이 쓰고 있는 공유자원

대기큐 : 프린트를 사용하기 위해 프로세스가 기다리는 공간

운영체제 : 열쇠관리자

세마포어 : 열쇠관리자가 들고 있는 열쇠, 정수형 변수

사용법

세마포어를 사용하면 공유자원에 여러 프소세스가 동시에 접근하지 못함 → 동기화 문제가 일어나지 않음

세마포어는 실제로 여러개의 열쇠를 가질 수 있음

정수형 변수, 공유자원이 2개라면 세마포어의 값은 2, → 열쇠 2개로 설정

단점

섹션5 데드락

교착상태

여러프로세스가 서로 다른 프로세스의 작업이 끝나기를 기다리다가 아무 작업도 진행하지 못하는 상태

이유

공유자원 때문에 발생

예시) 식사하는 철학자

필요조건

  1. 상호배제 : 어떤 프로세스가 한 리소스를 점유했다면 그 리소스는 다른 프로세스에게 공유가 되면 안됨

  2. 비선점 : 프로세스 A가 리소스르 점유하고 있는데 프로세스 B가 리소스를 뺏을 수 없음

  3. 점유와 대기 : 어떤 프로세스가 리소스 A를 가지고 있는 상태에서 리소스 B를 원하는 상태여야만 함

  4. 원형대기 : 점유와 대기를 하는 프로세스들의 관계가 원형을 이루고 있다는 것

해결방법

교착상태 회피

교착상태 알아내는 법

  1. 가벼운 교착상태 검출

    • 타이머를 이용하는 방식, 프로세스가 일정시간동안 작업을 진행하지 않는다면 교착상태가 발생했다고 간주하고 교착상태를 해결

  2. 무거운 교착상태 검출

    • 자원할당 그래프를 이용, 현재 운영체제에서 프로세스가 어떤 자원을 사용하는지 지켜보고 교착상태가 발생했다면 해결

섹션 6 컴파일과 프로세스

컴파일언어

개발자가 코드 작성 → 컴파일 → 0과1 기계어로 실행파일 만듦

인터프리터언어

개발자가 작성한 코드를 미리 기계어로 만들지 않고 실행시 코드를 한 줄 씩 해석해 실행하는 언어

프로세스의 메모리 구조

스택 : 지역 변수, 함수 관련 값

힙 : 실행 중 메모리 공간을 할당할 수 있는 유동적인 공간

데이터 : 전역변수나 배열

코드 : 실행해야 할 코드

중간정리

하드웨어, 운영체제 구조, 프로세스

 

회고

알고리즘 · 자료구조

답변 0