일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 자바
- Database
- Redux
- Javascript
- BFS
- Graph
- 리트코드
- TypeScript
- 안드로이드
- frontend
- git
- 프로그래머스
- 그레이들
- Data Structure
- VIM
- DP
- react
- network
- java
- 백준
- LeetCode
- vscode
- Algorithm
- CS
- DFS
- 알고리즘
- Python
- 동적 계획법
- 다이나믹 프로그래밍
- db
- Today
- Total
목록Computer Science/Operating System (19)
늘 겸손하게
공유자원 시스템 안에서 프로세스, 스레드가 함께 접근 가능한 자원이나 변수를 의미. 이 공유 자원을 2개 이상의 프로세스가 동시에 읽거나 쓰는 상황을 경쟁 상태(race condition)라고 한다. 동시에 접근을 시도할 때 접근 순서에 따라 결과값이 달라질 수 있는 상황. 임계 구역 - Critical Section 공유 자원의 접근 순서에 따라 실행 결과가 달라지는 프로그램 영역 공유 데이터를 여러 프로세스가 동시에 접근할 때 잘못된 결과를 만들 수 있기 때문에, 한 프로세스가 임계구역을 수행할 때는 다른 프로세스가 접근하지 못하도록 해야 한다. 임계 구역을 해결하기 위한 방법은 크게 뮤텍스, 세마포어, 모니터 세 가지가 있으며 모두 상호 배제, 한정 대기, 융통성이라는 조건을 만족합니다. 이 방법의..
Race Condition - 경쟁 상태 공유 자원에 대해 여러 프로세스가 동시에 접근할 때, 어떤 순서로 데이터에 접근하느냐에 따라 결과 값이 달라질 수 있는 상황을 말합니다. -> 동시 접근 시 자료의 일관성을 해치는 결과가 나타남 Race Condition이 발생하는 경우 1. 커널 작업을 수행하는 중에 인터럽트 발생 문제점 : 커널모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조작하는 경우 해결법 : 커널모드에서 작업을 수행하는 동안, 인터럽트를 disable 시켜 CPU 제어권을 가져가지 못하도록 한다. 2.프로세스가 'System Call'을 하여 커널 모드로 진입하여 작업을 수행하는 도중 Context Switch 발생할 때 문제점 : 프로세스1이 커널모드에서..
데드락 - DeadLock, 교착 상태 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태 무한히 다음 자원을 기다리게 되는 상태 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. 데드락이 일어나는 경우 프로세스 1과 2가 자원 1,2를 모두 얻어야 한다고 가정해보자 t1 : 프로세스1이 자원1을 얻음 / 프로세스2가 자원2를 얻음 t2 : 프로세스1은 자원2를 기다림 / 프로세스 2는 자원1을 기다림 현재 서로 원하는 자원이 상대방에 할당되어 있어서 두 프로세스는 무한정 wait 상태에 빠짐 -> DeadLock (주로 발생하는 경우) 멀티 프로그래밍 환경에서 한정된 자원을 얻기 위해 서로 경쟁하는 상황 발생. 한 프로세스가 자원을 요청했을 때, ..

스케줄링 CPU 사용량을 최대로 하기 위해 프로세스를 잘 배정하는 것. 조건 : 오버헤드 최저, 사용률 최대, 기아 현상 최저 목표 - 시스템에 따라 조금씩 다르다 Batch System : 가능하면 많은 일을 수행. 시간(time)보단 처리량(throughout)이 중요. Interactive System : 빠른 응답 시간. 적은 대기 시간. Real-time System : 기한(deadline) 맞추기. 선점 / 비선점 스케줄링 선점 (preemptive) OS가 CPU의 사용권을 선점할 수 있는 경우, 강제 회수하는 경우(처리시간 예측 어려움) 비선점(non-preemptive) 프로세스 종료 혹은 I/O 등의 이벤트가 있을 때까지 실행 보장 (처리시간 예측 용이함) 프로세스 상태 선점 스케줄링..