컴퓨터 & 코딩/CS 28

[혼공학습단 10기][혼공컴운] 6주차 미션

✏️ 진도: Chapter 14 ~ 15 (가상 메모리 / 파일 시스템) - 메모리 연속 할당 / 페이징을 통한 가상 메모리 관리 - 페이지 교체와 프레임 할당 - 파일 시스템 📖 기본 미션: p. 400의 확인 문제 1번 풀고 인증하기 📚 선택 미션: Ch.14(14-3) 프로세스가 사용할 수 있는 프레임이 3개 있고, 페이지 참조열이 '2313523423' 일 때 LRU 페이지 교체 알고리즘으로 이 페이지를 참조한다면 몇 번의 페이지 폴트가 발생하는지 풀어보기 총 세 번의 페이지 폴트가 발생한다.

[혼공학습단 10기][혼공컴운] 파일 시스템

✓ 파일과 디렉터리 1. 파일 - 하드 디스크가 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합 - 의미있고 관련있는 정보를 모은 논리적 단위 - 구성: 이름, 파일을 실행하기 위한 정보, 파일 관련 부가 정보 (속성 attribute 혹은 메타데이터 metadata) 2. 디렉터리 - 1단계 디렉터리 single-level directory: 하나의 디렉터리만 존재 (옛날 운영체제) - 트리 구조 디렉터리 tree-structured directory: 최상위 디렉터리(루트 디렉터리)가 있고 아래에 여러 서브 디렉터리가 있는 구조 ✏️ 절대 경로와 상대 경로 - 절대 경로: 루트 디렉터리 부터 시작하는 경로 (예: /home/minchul/a.sh) - 상대 경로: 현재 디렉터리 부터 시작하는 경..

[혼공학습단 10기][혼공컴운] 5주차 미션

✏️ 진도: Chapter 12 ~ 13 (프로세스 동기화 / 교착 상태 ) 1. 프로세스 동기화 2. 교착 상태 📖 기본 미션: p. 363의 확인 문제 1번 풀고 인증하기 ❗️세마포에서는 대기 큐와 준비 큐를 이용해 프로세스를 대기 상태 / 준비 상태로 변경할 수 있다. 📚 선택 미션: Ch.12(12-1) 임계 구역, 상호 배제 개념을 정리하기 ✏️ 상호 배제: 공유가 불가능한 자원의 동시 사용을 피하기 위해 사용하는 알고리즘. 한 프로세스가 임계 구역에서 작업 중이면 다른 프로세스가 임계 구역에 들어갈 수 없도록 제어한다. ✏️ 임계 구역: 공유 자원에 접근하는 코드 중 동시에 실행하면 문제가 발생(레이스 컨디션)하는 코드 영역 ❗️ "총합++"과 "총합--"를 실행시킬 경우, 고급언어는 실행과정..

[혼공학습단 10기][혼공컴운] 가상 메모리 - 페이지 교체와 프레임 할당

✓ 요구 페이징 demand paging 프로세스를 메모리에 적재할 때 처음부터 모든 페이지를 적재하지 않고 필요한 페이지만을 메모리에 적재하는 기법 ✏️ 순서 1. CPU가 특정 페이지에 접근하는 명령어 실행 2. 유효 비트가 0일 경우(해당 페이지가 현재 메모리에 없음) 페이지 폴트가 발생 (유효 비트가 1일 경우(해당 페이지가 현재 메모리에 있음) 페이지가 적재된 프레임에 접근) 3. 해당 페이지를 메모리로 적재하고 유효 비트를 1로 설정 💡 순수 요구 페이징 pure demand paging 아무런 페이지도 적재하지 않은 채 무작정 실행하여 첫 명령어 실행 순간에 페이지 폴트가 계속 발생하게 되고 어느정도 적재된 이후에는 페이지 폴트 발생 빈도가 떨어지는 것 ✓ 페이지 교체 알고리즘 Page Re..

[혼공학습단 10기][혼공컴운] 가상 메모리 - 연속 메모리 할당 / 페이징을 통한 가상 메모리 관리

✓ 연속 메모리 할당 ✏️ 연속 메모리 할당: 프로세스에 연속적인 메모리 공간을 할당하는 방식 1️⃣ 스와핑 swapping 현재 실행되지 않는 프로세스들을 임시로 보조기억장치 일부 영역으로 쫓아내고 그 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식 - 스왑 영역 swap space: 프로세스들이 쫓겨나는 보조기억장치의 일부 영역 - 스왑 아웃 swap out: 현재 실행되지 않는 프로세스가 스왑 영역으로 옮겨지는 것 - 스왑 인 swap in: 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨오는 것 2️⃣ 메모리 할당 비어있는 메모리 공간에 프로세스를 연속적으로 할당하는 방식 1) 최초 적합 first fit 최초로 발견한 적재 가능한 빈 공간에 프로세스를 배치하는 방식. 2) 최적 적합 bes..

[혼공학습단 10기][혼공컴운] 교착 상태

✓ 교착 상태 Deadlock 두 개 이상의 프로세스가 각자 가지고 있는 자원을 무작정 기다려서 그 어떤 프로세스도 더 이상 진행할 수 없는 상태이다. 일어나지 않을 사건을 기다리며 진행이 멈춰 버리는 현상을 의미한다. ✏️ 식사하는 철학자 문제 dining philosophers problem 계속 생각을 하다가 왼쪽 포크가 사용 가능하면 집어 든다 계속 생각을 하다가 오른쪽 포크가 사용 가능하면 집어든다 왼쪽과 오른쪽 포크를 모두 집어들면 정해진 시간동안 식사를 한다 식사 시간이 끝나면 오른쪽 포크를 내려 놓는다 오른쪽 포크를 내려 놓은 뒤 왼쪽 포크를 내려 놓는다 다시 1번 부터 반복한다 순서대로 식사를 한다면 문제가 없지만 만약 모든 철학자가 동시에 포크를 집어 식사를 하려고 한다면 그 어떤 철학..

[혼공학습단 10기][혼공컴운] 프로세스 동기화

✓ 동기화란 ✏️ 프로세스 동기화: 프로세스들 사이의 수행 시기를 맞추는 것 - 실행 순서 제어를 위한 동기화: 프로세스를 올바른 순서대로 실행하기 위한 동기화 - 상호 배제를 위한 동기화: 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하기 위한 동기화 💡 생산자와 소비자 문제: 생산자 프로세스와 소비자 프로세스가 제대로 동기화되지 않아 발생하는 문제. 예상치 못한 결과나 실행 중 오류가 난다. - 공유 자원 shared resource: 프로세스들이 공유하는 자원. (전역변수, 파일, 입출력장치, 보조기억장치 등) - 임계 구역 critical section: 동시에 실행하면 문제가 발생하는 자원에 접근하는 코드 영역 ❗️레이스 컨디션 race condition: 잘못된 실행으로 인해 ..

[혼공학습단 10기][혼공컴운] CPU 스케줄링

✓ CPU 스케줄링 개요 ✏️ CPU 스케줄링: 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것 프로세스 우선순위 입출력 집중 프로세스 I/O bound process: 입출력 작업(입출력 버스트)이 많은 프로세스. 대기 상태에 더 많이 머무름 CPU 집중 프로세스 CPU bound process: CPU 작업(CPU 버스트)이 많은 프로세스. 실행 상태에 더 많이 머무름 💡 입출력 집중 프로세스가 우선순위가 높다. 입출력 집중 프로세스를 가능한 빨리 실행시켜 입출력장치를 끊임없이 작동시키고, 그 다음 CPU 집중 프로세스에 집중적으로 CPU를 할당하는 것이 더 효율적이기 때문. 스케줄링 큐 준비 큐 ready queue: CPU를 이용하고 싶은 프로세스들이 서는 줄 대기 큐 wa..

[혼공학습단 10기][혼공컴운] 4주차 미션

✏️ 진도: Chapter 09 ~ 11 (운영체제 / 프로세스와 스레드 / CPU 스케줄링) 1. 운영체제의 큰 그림 2. 프로세스와 스레드 3. CPU 스케줄링 📖 기본 미션: p. 304의 확인 문제 1번 풀고 인증하기 📚 선택 미션: 준비 큐에 A,B,C,D 순으로 삽입되었다고 가정했을 때, 선입 선처리 스케줄링 알고리즘을 적용하면 어떤 프로세스 순서대로 CPU를 할당받는지 풀어보기 ✅ 선입 선처리 스케줄링 알고리즘은 큐에 삽입된 순서대로 프로세스들을 처리하는 스케줄링 방식이기 때문에 답은 "A-B-C-D"이다.

[혼공학습단 10기][혼공컴운] 프로세스와 스레드

✓ 프로세스 개요 ✏️ 프로세스: 보조기억장치에 저장되어있는 프로그램을 메모리에 적재하고 실행하는 과정 포그라운드 프로세스: 사용자가 보는 앞에서 실행되는 프로세스 백그라운드 프로세스: 사용자가 보지 못하는 뒤편에서 실행되는 프로세스 사용자와 직접 상호작용하는 백그라운드 프로세스 사용자와 상호작용하지 않는 백그라운드 프로세스: (유닉스) 데몬 daemon, (윈도우) 서비스 프로세스 제어 블록 PCB - 프로세스와 관련된 정보를 저장하는 자료 구조. - 빠르게 번갈아 수행되는 프로세스의 실행 순서를 관리. 프로세스에 CPU를 비롯한 자원을 배분 - 커널 영역에 생성됨. 프로세스 생성 시 만들어지고 실행이 끝나면 폐기된다. - PCB에 담기는 정보 프로세스 ID (PID): 특정 프로세스를 식별하기 위해 ..

320x100