inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[인프런 워밍업 클럽 3기 CS] 2주 차 발자국

xx
0

운영체제

프로세스 간 통신

종류

한 컴퓨터 내에서

한 프로세스 내에서

네트워크를 이용한 방법

공유자원과 임계구역

공유자원

임계구역

해결 방법

상호 배제의 요구사항

  1. 임계영역에는 동시에 하나의 프로세스만 접근한다.

  2. 여러 요청에도 하나의 프로세스의 접근만 허용한다.

  3. 임계구역에 들어간 프로세스는 빠르게 나와야 한다.

세마포어

모니터

교착상태(데드락)

필요조건

교착상태 해결 방법

교착상태 회피

교착상태를 검출하는 방법

  1. 가벼운 교착상태 검출: 타이머를 이용해 프로세스가 일정시간 동안 작업을 진행하지 않는다면 교착상태가 발생했다고 간주하고 해결함

    1. 일정 시점마다 체크 포인트를 만들어 작업을 저장하고 타임 아웃으로 교착상태가 발생했다면 마지막으로 저장했던 체크 포인트로 롤백

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

    1. 오버헤드가 발생하지만 가벼운 교착상태 검출에서 발생할 수 있는 억울하게 종료되는 프로세스는 발생하지 않는다.

컴파일과 프로세스

컴파일 언어

컴파일 과정에서 문법 오류 검사하고 CPU에서 처리 가능한 기계어로 실행 파일을 만들어 놓기 때문에 속도가 빠름

인터프리터 언어

메모리

레지스터

캐시

메인 메모리

보조 저장 장치

메모리와 구조

물리 주소

논리 주소

메모리 할당 방식

가변 분할 방식(세그멘테이션)

장점 단점 메모리의 연속된 공간에 할당되기 때문에 낭비되는 공간인 내부 단편화가 없음 외부 단편화 발생

고정 분할 방식(페이징)

장점 단점 구현이 간단하고 오버헤드가 적음 작은 프로세스도 큰 영역에 할당되어 낭비되는 내부 단편화 발생

외부 단편화

내부 단편화

 

알고리즘

재귀

function myFunction(number) {
  console.log(number);
  myFunction(number + 1);
}
function myFunction(number) {
  if (number > 10) return;
  console.log(number);
  myFunction(number + 1);
}

콜스택

팩토리얼

function factorial(number) {
  if (number == 1 || number == 0) {
    return 1;
  } else {
    return number * factorial(number - 1);
  }
}

하노이탑

  1. 한 번에 한개의 원판만 옮길 수 있다.

  2. 가장 위에 있는 원판만 이동할 수 있다.

  3. 큰 원판이 작은 원판 위에 있어서는 안 된다.

정렬

버블 정렬

선택 정렬

References

답변 0