운영체제론(6)
-
[리눅스] 프로세스 관리 명령어 퀴즈 정리
-로그인하면 나타나는 프롬포트를 변경하려고 할 때 사용하는 환경변수는? PS1 쉘 변수 : 현재 사용자의 시스템 사용환경을 개별적으로 사용할 수 있도록 지원하는 사용자별 시스템 환경변수PS1은 우리가 사용하는 쉘변수의 모양을 결정함. -주기적이고 지속적인 서비스 요청을 처리하기 위해서 메모리에서 계속적으로 실행되는 백그라운드 프로세스의 일종인 것은 무엇인가? 데몬(ddemon) 즉 PPID가 1이며, 프로세스 트리에서 init 바로 아래에 위치함. -'ls -al' 프로세스의 이름을 이용해서 해당 프로세스를 kill 시키는 명령을 기술하시오 (pgrep 이용) kill -9 $(pgrep -n ls) ps -ef 밑줄친 PID 2827 (/usr/bin/pulseaudio --start --log-tar..
2021.10.31 -
[OS] CPU 스케줄링
FCFS - 비선점 CPU를 먼저 요청하는 프로세스가 CPU를 먼저 할당받음 convoy effect 발생할 수 있음 모든 다른 프로세스들이 하나의 긴 프로세스가 CPU를 양도하기 기다리는 것 SJF (Shortest Job First) - 비선점 가장 작은 CPU burst 시간을 가진 프로세스에게 우선적으로 CPU를 할당함 비선점이므로 가장 먼저 도착한 p1이 일단 실행하고, 그 다음 burst time이 작은 p3 순으로 실행함 SRTF (Shortest Remaining Time First) - 선점형 먼저 온 프로세스가 CPU를 할당받고 있더라고 남은 처리 시간이 뒤에 온 프로세스의 처리 시간보다 길면 CPU를 빼앗김 RR (Round Robin) - 선점형 프로..
2021.06.14 -
[OS] Semaphore, Ordering, Mutex (은행 계좌 자바 예제)
0. Semaphore 여러 개의 프로세스가 공유 자원에 동시 접근할 때 문제 발생 프로세스 A, 프로세스 B는 int a = 100 이라는 자원을 공유하여, 각각 a를 1씩 증가시키는 작업을 시킴 이때, 한번에 둘 이상의 프로세스가 접근하여 데이터를 동시에 변경하며 결과값에 영향을 줄 수 있음 경쟁 상태= Race condition 공유된 자원 속 하나의 데이터는 한번에 프로세스만 접근할 수 있도록 제한을 두어야 할 때 고안된 것이 Semaphore (쎄마포어) Semaphore는 P연산과 V연산으로 이루어져 있음 P(S) : S를 1 감소 (S--) V(S) : S를 1 증가 (S++) 프로세스는 S가 1 이상일 때만 임계영역으로 진입할 수 있다고 가정 / S가 0이면 진입하지 못함 * Semapho..
2021.06.13 -
[OS] 프로세스 동기화 (Process Synchronization))
0. 프로세스 동기화 협력하는 프로세스 사이에서 실행 순서 규칙을 정하여 공유 자원의 일관성을 보장하는 것 경쟁 조건(Race condition)이 발생하지 않게, 프로세스들이 공유 자원을 사용할 때 특별한 규칙을 만드는 것 1. 경쟁 조건(Race condition) 여러 프로세스(스레드)가 공유 자원에 동시에 접근할 때, 공유 자원에 대한 접근 순서에 따라 실행 결과가 달라질 수 있는 상황 경쟁 상태를 방지하기 위해 병행 프로세스를 동기화해야 하며, 임계 영역(Critical section)을 이용한 상호배제를 통해 해결할 수 있음 2. 임계 영역(Critical section) 여러 프로세스가 자원을 공유하는 상황에서 하나의 프로세스만 접근할 수 있도록 제한해 둔 코드 영역 2-1 임계 영역 문제 ..
2021.06.13 -
[OS] 메모리 관리 요약
1. 메모리 관리 정책 1. 적재 정책(Fetch Policy) : 디스크에서 메모리로 프로세스를 언제 가져와야 할지를 정하는 것 (반입 시기 결정) 1. 요구 적재 : 운영체제나 시스템 프로그램, 사용자 프로그램 등 참조 요청에 따라 메모리를 적재하는 방법 2. 예상 적재 : 시스템의 요청을 미리 예측하여 메모리에 적재하는 방법 2. 배치 정책(Placement Policy) : 디스크에서 메모리로 가져온 프로세스를 어느 위치에 저장할 것인지 정하는 것 3. 대치 정책(Replacement Policy) : 메모리가 충분하지 않을 때, 현재 메모리에 적재된 프로세스 중 제거할 프로세스를 결정 및 교체하는 방법 2. 메모리의 구조와 매핑 메모리의 주소 1. 논리적 주소 프로그래머가 프로그래밍에 사용하는 ..
2021.06.13 -
[OS] 자식 프로세스 2개 생성 , kill 명령어 실행하기
프로세스 확인하기 1. 부모 프로세스 1개, 자식 프로세스 2개 생성하기 실행 코드 자식 프로세스 2개를 생성하기 위해 fork 함수를 두 번 호출한다. fork()를 두 번 하게 되면 자식 1명의 자손 프로세스 1개까지 생겨 총 4개의 프로세스가 생성된다. 총 프로세스의 개수는 fork의 횟수(n)의 2의 n제곱이다. fork 함수는 자식 프로세스에게는 0을 반환하고, 부모 프로세스에게는 자식 프로세스의 pid를 반환한다. 처음 pid는 fork()에게 자식 프로세스의 pid를 받고, else 문으로 간다. 이때, wait(NULL); 을 통해 부모 프로세스는 자식 프로세스가 끝날 때까지 기다리게 된다. 자식 프로세스가 생성되어 pid는 fork 함수에게 0을 받고, 조건문을 실행한다. execlp 를..
2021.05.17