인프런 워밍업 클럽 스터디 2기 CS 2주차 발자국
회고
: 운영체제에서 CPU 스케줄링과 프로세스 동기화 등에 대해 알차게 학습한 이번주. 알고리즘은 강의에 맞춰, 따로 문제를 더 풀어보고자 했는데 그러진 못했다.
하지만 집에 밤 혹은 자정 넘어 오는 수많은 야근 속에서도 강의를 밀리지 않고 꾸준히 들은 나를 스스로 칭찬해본다. 다음주도 꾸준히 해보기.
운영체제 간단 요약
선입 선처리 스케줄링
- FIFO 알고리즘
- '평균 대기 시간'이 길어질 수 있음
- 현대 운영체제에 안쓰이고 <일괄 처리 시스템>에 쓰임
SJF 최단 잔여 시간 우선 스케줄링
- Burst time이 짧은 것부터 우선 실행
- SJF 사용하기 어려운 이유?
(1) 어떤 프로세스가 얼마나 실행될 지 예측하기 힘들다
(2) Burst time이 긴 프로세스는 아주 오랫동안 실행되지 않을 수 있음
RR 라운드 로빈 스케줄링
- 한 프로세스가 할당 받은 시간(타임 슬라이스)동안 작업을 하다가,
완료하지 못하면 준비 큐의 맨 뒤로 가서 자기 차례를 기다리는 방식
- 동시에 실행하는 거처럼 + 오버헤드가 크지 않은 타임 슬라이스여야 함.
✔ 공유 자원
: 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등
✔ 경쟁 조건
: 여러 프로세스가 공유 자원을 병행해서 읽거나 쓰는 상황
✔ 임계구역 Critical section
: 공유 자원 접근 순서에 따라 실행 결과가 달라지는 프로그램의 영역
: 임계구역 문제 해결조건 중 1. 상호 배제
(1) 임계영역엔 동시에 하나의 프로세스만 접근한다.
(2) 동시에 여러 요청이 와도 하나의 프로세스의 접근만 허용한다.
(3) 임계구역에 들어간 프로세스는 빠르게 나와야 한다.
세마포어 Semaphore
하드웨어적 해결방법, 피터슨, 데커 알고리즘 3개는 busy wating을 사용하기 때문에 자원 낭비도 심하고 알고리즘도 복잡하다.
세마포어는 임계구역(critical section)에 진입하기 전에 스위치를 사용 중으로 놓고 임계구역으로 들어간다.
모니터
세마포어의 문제는 잘못된 사용으로 인해, 임계구역이 보호받지 못한다는 것이다.
모니터는 프로시저 호출에 대해서 동기화하여 안전하게 공유 자원을 사용할 수 있도록 돕는다.
프레임워크나 라이브러리 차원에서 제공한다.
데드락(Deadlock, 교착 상태)
둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황
알고리즘 간단 요약
선택정렬
해당 순서에 원소를 넣을 위치는 이미 정해져 있고, 그 위치에 어떤 원소를 넣을지 선택하는 알고리즘
버블정렬
배열 내의 두개의 인접한 Index를 비교하여 더 큰 숫자를 뒤로 보내 차곡차곡 쌓아 정렬하는 방법. 배열의 뒷쪽부터 정렬하는 알고리즘.
댓글을 작성해보세요.