목록그리고 (52)
테키테크 TEKITECH

교착 상태에 대하여 교착 상태(데드락)란? ft.식사하는 철학자 문제 교착 상태 발생 조건 4가지 교착 상태 해결 방법 - 예방, 회피, 회복 1. 교착 상태(데드락)란? ft. 식사하는 철학자 문제 프로세스 실행 과정에서 발생하는 문제 중 교착 상태 또는 데드락(Dead Lock)이라고 불리는 문제가 있다. ◈ 식사하는 철학자 문제 식사하는 철학자 문제는 교착 상태를 설명하기 위한 고전적인 문제이다. 동그란 원탁에는 다섯 명의 철학자가 앉아있고, 모든 철학자의 앞에는 각각 음식 접시가 놓여있다. 그리고 식사를 하기 위한 포크는 철학자 사이에 하나씩 총 5개의 포크가 놓여있다. 만약 포크 두 개가 있어야 먹을 수 있는 식사이고, 철학자들은 아래와 같이 식사를 한다고 하자. ① 철학자들은 계속 생각을 하다..

프로세스의 동기화 동기화 '생산자와 소비자 문제'와 '임계 구역 문제' 핵심 동기화 도구: 뮤텍스 락, 세마포, 모니터 1. 동기화 서로 데이터를 주고받으며 동시다발적으로 실행되는 많은 프로세스는 동기화를 통해 일사불란하게 실행될 수 있다. 이때, 동기화 즉, 프로세스 동기화란 프로세스 사이의 수행 시간을 맞추는 것을 의미한다. [1] 실행 순서 제어를 위한 동기화 프로세스는 올바른 순서대로 실행돼야 한다. 이를테면 특정 조건이 충족되어야 실행 가능한 프로세스의 경우에 해당 조건을 실행시키는 프로세스가 먼저 실행되어야 한다. [2] 상호 배제를 위한 동기화 서로 다른 두 프로세스가 동시에 접근하면 안 되는 자원에 대해 한 번에 하나의 프로세스만 접근하도록 해야 한다. 2. '생산자와 소비자 문제'와 '임..

CPU 자원을 분배하는 방법 CPU 스케줄링 CPU 스케줄링 알고리즘 1. CPU 스케줄링 운영체제가 프로세스에 공정하고 합리적으로 CPU 자원을 배분하는 것을 CPU 스케줄링이라고 한다. 이때, 프로세스의 우선순위 즉, 빨리 처리해야 하는 프로세스 순서에 따라 배분을 하게 된다. ◈ 프로세스 우선순위 우선순위가 높은 프로세스에 CPU를 먼저 할당한다. 예를 들어 입출력 작업이 많아 대기 상태에 많이 머무르는 입출력 집중 프로세스는 우선순위가 높다. 반면 CPU 작업이 많은 CPU 집중 프로세스는 대기 상태보다는 실행 상태에 더 많이 머무르므로 우선순위가 낮다. CPU 사용 빈도가 낮은 프로세스를 먼저 할당하여 빨리 완료시킨 후 CPU 사용 빈도가 높은 프로세스를 실행하는 게 더 효율적이기 때문이다. 이..

우리가 알아야 할 컴퓨터 구조 지식 두 가지 프로세스 프로세스 상태와 프로세스 계층 구조 스레드 멀티프로세스와 멀티스레드 1. 프로세스 지금까지 '실행 중인 프로그램'이라고 표현하던 것을 프로세스라고 부른다. 프로그램이 실행되기 전까지는 보조기억장치에 있는 데이터 덩어리로 있다가 메모리로 옮겨 적재하고 실행하는 순간부터는 프로세스가 된다. ◈ 포그라운드 프로세스(Foreground Process)와 백그라운드 프로세스(Background Process) 사용자가 볼 수 있는 공간에서 실행되는 프로세스를 포그라운드 프로세스라고 하고, 보이지 않는 공간에서 실행되는 프로세스를 백그라운드 프로세스라고 한다. 이러한 백그라운드 프로세스를 유닉스 체계의 운영체제에서는 데몬(Daemon), 윈도우 운영체제에서는 서..

5주 차 미션! [미션 1] p. 363의 확인 문제 1번 풀고 인증하기 ① 뮤텍스 락은 임계 구역을 잠근 뒤 임계 구역에 진입함으로써 상호 배제를 위한 동기화를 이룹니다. (O) ② 세마포는 공유 자원이 여러 개 있는 상황에서도 이용할 수 있습니다. (O) ③ 세마포를 이용해 프로세스 실행 순서 제어를 위한 동기화도 이룰 수 있습니다. (O) ④ 세마포를 이용하면 반드시 바쁜 대기를 해야 합니다. (X) → 대기(wait) 또는 가도 좋다는 신호(signal)에 따르게 되고, 대기 상태로 만들 수 있습니다. [미션 2] Ch.12(12-1) 임계 구역, 상호 배제 개념을 정리하기 공유 자원 중에서 두 개 이상의 프로세스를 동시에 실행했을 때 문제가 발생하는 자원이 있는데, 이러한 자원에 접근하는 코드 ..

운영체제 이해하기 커널과 이중 모드 및 시스템 호출 운영체제의 핵심 서비스 1. 커널과 이중 모드 및 시스템 호출 운영체제의 핵심 서비스를 담당하는 부분을 커널이라고 한다. 따라서 운영체제가 설치된 모든 기기에는 커널이 있고, 어떤 커널을 사용하는지에 따라 프로그램이 하드웨어를 이용하는 양상 및 컴퓨터 전체의 성능에 차이가 생길 수 있다. 커널에 포함되지 않는 서비스에는 사용자 인터페이스 등이 있다. 운영체제는 하드웨어 자원 관리와 보호를 위해 오직 자신을 통해서만 자원에 접근하도록 한다. 이러한 문지기 역할은 CPU가 명령어를 실행하는 모드를 크게 사용자 모드와 커널 모드로 구분하는 이중 모드로 구현된다. ◈ 사용자 모드 → 사용자 모드는 운영체제 서비스를 제공받을 수 없는 실행 모드 즉, 커널 영역의..

RAM의 용량과 성능 RAM의 종류 메모리의 물리주소와 논리주소 저장 장치 계층 구조 캐시 메모리와 참조 지역성 원리 1. RAM의 용량과 성능 전원을 끄면 저장된 내용이 사라지는 휘발성 저장 장치(Volatile Memory): RAM 등 전원이 꺼져도 저장된 내용이 유지되는 비휘발성 저장 장치(Non-Volatile Memory): 하드 디스크, SSD, CD-ROM, USB 등 보조기억장치는 전원을 꺼도 내용을 유지하지만, CPU가 보조기억장치에 직접 접근하지 못함. 그래서 일반적으로 보조기적장치(비휘발성 저장 장치)에는 보관할 대상을 저장하고, RAM(휘발성 저장 장치)에는 실행할 대상을 저장함. RAM 용량이 적다면 실행할 프로그램이 저장된 보조기억장치에서 정보를 자주 가져와야 해서 실행시간이 ..

CPU를 이해하고 제대로 사용하기 빠른 CPU를 위한 설계 기법 명령어 병렬 처리 기법 ISA와 CISC, RISC 1. 빠른 CPU를 위한 설계 기법 CPU 성능을 높이는 방법에는 3가지가 있다. 클럭 속도를 높이는 방법 코어를 늘리는 방법 스레드 수를 늘리는 방법 [1] 클럭 속도를 높이는 방법 "컴퓨터 부품들은 '클럭 신호'에 맞춰 일사불란하게 움직인다." "CPU는 '명령어 사이클'이라는 정해진 흐름에 맞춰 명령어를 실행한다." 즉, 클럭 속도가 높아지면 CPU는 명령어 사이클을 더 빠르게 반복하고, 다른 부품들도 그에 발맞춰 더 빠르게 작동할 것이다. 실제로 클럭 속도가 높은 CPU는 일반적으로 성능이 좋기 때문에 클럭 속도를 CPU 속도 단위로 간주하기도 한다. 클럭 속도는 헤르츠(㎐)단위로 ..