일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 트리
- 동적계획법
- Android
- dfs
- 프로그래머스
- 알고리즘
- 문자열다루기
- BOJ
- 그래프
- 완전탐색
- 카카오블라인드
- 코딩테스트
- 분할정복
- 운영체제
- component
- 스택
- 배열
- GIT
- 안드로이드
- 세그먼트트리
- 자바
- 백준
- activity
- BFS
- 생명주기
- 이분탐색
- 문자열
- 코틀린
- 다이나믹프로그래밍
- 코딩
- Today
- Total
목록CS (13)
HS_development_log
동기화(Synchronization) * 프로세스와 쓰레드 모두 해당되는 문서입니다. 편의를 위해 프로세스로 작성하였습니다 동기화(synchronization) 병행 프로세스들이 서로 데이터를 주고 받으면서 수행 될 때, 이 프로세스들 간의 동기화가 필요하다 병행 프로세스들이 공유 데이터에 접근할 때, 병행 접근하면 데이터의 일관성(data consistency)이 잘못될 수 있다 데이터의 일관성을 유지하려면 데이터 접근을 순서화 해야한다. 임계 구역(Critical Section) 각 프로세스는 공유 데이터를 접근하는 코드 세그먼트를 갖고 있는데 이것을 임계 구역 이라고 함 임계 구역 문제 임계 구역의 수행을 순서화 해서 수행하자 오직 한 프로세스 만이 임계 구역을 수행하게 하자 문제 해결 각 프로세스..
CPU 스케줄링 CPU 스케줄링 이란? 준비 큐의 프로세스들 중에서 CPU를 할당할 순서를 정하는 것 운영체제의 단기 스케줄러가 수행함 언제 CPU 스케줄링을 할까? 실행 상태에서 대기 상태로 전환될 때 실행 상태에서 준비 상태로 전환될 때 대기 상태에서 준비 상태로 전환될 때 종료할 때 CPU 스케줄링 기준 CPU 사용률(Utilization) 단위 시간당 CPU 사용시간의 비율 처리량(Throughput) 단위 시간당 완료된 프로세스의 개수 반환시간(Turnaround time) 특정 프로세스를 실행하는데 걸린 총 시간 대기시간(Waiting time) 프로세스가 준비 큐에서 대기하면서 기다린 시간의 합 응답시간(Response time) 작업을 요청한 후 첫번째 응답이 나올 때까지의 시간 선점(pr..
멀티 프로세스 vs 멀티 쓰레드 멀티 프로세스 장점 여러 개의 자식 프로세스 중 하나에 문제가 발생하면 그 자식 프로세스만 죽는 것 이상으로 다른 영향이 확산되지 않는다. 단점 CPU가 프로세스를 교체할때 발생하는 문맥교환으로 인해 오버헤드가 발생한다 프로세스간 자원 및 정보를 교환하기 어렵다 멀티 쓰레드 장점 쓰레드 끼리는 자원을 공유하므로 메모리 공간과 시스템 자원소모가 줄어들게 된다. 문맥 교환시, 캐시 메모리를 비울 필요가 없기 때문에 비용이 적고 빠르다 따라서 시스템 처리량이 향상되고 자원소모가 줄어들며, 프로그램 응답 시간이 단축된다 단점 서로 자원을 공유하기 때문에 동시에 자원에 접근하면 동기화 문제가 발생할 수 있다 하나의 스레드에 문제가 생기면 전체 프로세스가 영향을 받는다 왜 멀티 쓰레..
쓰레드 쓰레드(Thread) CPU 이용의 기본 단위 프로세스 내에서 실행되는 기본 단위 LWP(Light Weight Process) 프로세스와 쓰레드 프로세스가 여러 쓰레드를 가진다면 동시에 하나 이상의 작업들을 수행할 수 있음 같은 프로세스에 속한 쓰레드들은 프로세스의 코드, 데이터, 열린 파일 등을 공유함 각 쓰레드는 각자 레지스터 집합(PC 레지스터 포함), 스택을 가짐 싱글 쓰레드 vs 멀티 쓰레드 싱글 쓰레드 : 프로세스 내의 쓰레드가 1개인 경우 멀티 쓰레드 : 프로세스 내의 쓰레드가 2개 이상인 경우 멀티쓰레드의 장점 빠른 응답성 프로그램의 한 부분을 수행하다가 중단되어도 다른 부분이 계속 수행할 수 있어 사용자에게 응답성을 좋게 할 수 있다 자원 공유 쓰레드는 프로세스 내의 code, ..