인프런 워밍업 클럽 스터디 2기 CS 2주차 발자국

인프런 워밍업 클럽 스터디 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를 비교하여 더 큰 숫자를 뒤로 보내 차곡차곡 쌓아 정렬하는 방법. 배열의 뒷쪽부터 정렬하는 알고리즘.

댓글을 작성해보세요.

채널톡 아이콘