| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 윤곽선검출
- BOJ
- 코테
- 백준괄호
- 컴퓨터비전
- 카카오코테
- KT포트포워딩
- 이것이자바다
- 확인문제
- 백준온라인저지
- 백준9012
- 이것이자바다9장
- 백준가운데를말해요
- 백준
- java
- 백준10828
- 백준평범한배낭
- 운영체제
- 코드트리
- 냅색알고리즘
- 2019카카오코테
- BOJ1655
- 코딩테스트실력진단
- 합성곱연산
- 이것이자바다확인문제
- 스파르타코딩클럽
- 가운데를말해요
- 웹개발기초
- 백준스택
- 딥러닝
- Today
- Total
목록전체 글 (168)
코딩하는 락커
이미지 & 컨테이너: 무엇이며, 왜 사용하는가? 도커의 2가지 기초 개념 컨테이너 애플리케이션, 웹사이트, 노드 서버, 애플리케이션을 실행하는 전체 환경 등을 포함하는 작은 패키지 소프트웨어 실행 유닛이 존재하여 그 유닛이 실행됨 이미지의 구체적인 실행 인스턴스, 즉 실행 애플리케이션이 됨 이미지 템플릿, 컨테이너의 청사진 모든 설정 명령과 모든 코드가 포함된 공유 가능한 패키지 이미지를 사용하여 이를 기반으로 한 여러 컨테이너를 만들 수 있음 이미지와 컨테이너의 관계 컨테이너에 설치된 이미지는 컴퓨터에서 실행되는 것이 아니라 컨테이너 내부에 설치되고 실행됨 이미지는 run 명령어를 사용하여 이미지의 인스턴스를 만들고, 이 이미지를 기반으로 하는 구체적인 컨테이너를 생성함 즉 컨테이너는 이미지의 인스턴스..
8.6 교착 상태 회피Deadlock Avoidance 데드락 예방 알고리즘은 요청 방법에 제한을 두어 교착 상태를 예방함 이 제한은 데드락이 발생하기 위한 필요 조건 중 적어도 한 가지는 성립되지 않도록 보장함 그러나 이런 방식으로 데드락을 예방할 때 장치의 이용률이 저하되고 시스템 총처리율throughput이 감소한다는 문제가 발생 교착 상태 회피 자원이 어떻게 요청될지에 대한 추가 정보를 제공하도록 요구하는 것 각 스레드의 요청과 방출에 대한 완전한 순서를 파악하고 있다면, 각 요청에 대해서 가능한 미래의 교착 상태를 피하고자 스레드가 대기해야 하는지에 대한 여부를 결정할 수 있음 가장 단순하고 유용한 모델은 각 스레드가 자신이 필요로 하는 각 유형의 자원마다 최대 수를 선언하도록 요구하는 것 안전..
8.1 시스템 모델System Model 데드락 대기 중인 스레드들이 그들이 요청한 자원들이 다른 스레드들에 의해서 점유되어 있고, 그들도 다 대기 상태에 있기 때문에 결코 다시는 그 상태를 변경할 수 없는 상황 시스템은 경쟁하는 스레드들 상이에 분배되어야 할 유한한 수의 자원들로 구성됨 이들 자원은 다수의 유형으로 분할되며 이들 각각은 동등한 다수의 인스턴스들로 구성됨 ex) CPU 주기, 파일, 입/출력 장치 등 만일 한 스레드가 어떤 자원 유형의 한 인스턴스를 요청하면, 동일 유형 자원의 임의의 인스턴스를 할당함으로써 요청이 충족됨 스레드는 자원을 사용하기 전에 반드시 요청해야 함 스레드는 자원을 사용한 후에는 반드시 방출해야 함 스레드는 지정된 테스크를 수행하기 위해 필요한 만큼의 자원을 요청할 ..
식사하는 철학자들 문제 식사하는 철학자 문제 가정 5명의 철학자가 5개의 의자에 각각 앉아 있음 테이블 중앙에는 밥이 있음 테이블에는 다섯개의 젓가락이 놓여 있음 철학자들은 배가 고파지면 자신에게 가장 가까이 있는 두 개의 젓가락(왼쪽 젓가락과 오른쪽 젓가락)을 집으려고 시도함 철학자들은 한번에 한 젓가락만 집을 수 있음 철학자들은 이미 옆 사람의 손에 들어간 젓가락을 집을 수 없음 동시에 두 개의 젓가락을 집으면 젓가락을 놓지 않고 식사를 함 식사를 마치면 두 개의 젓가락을 모두 놓고 다시 생각을 시작함 식사하는 철학자 문제는 교착 상태Deadlock과 기아Starvation을 발생시키지 않고 여러 스레드에게 여러 자원을 할당해야 할 필요를 단순하게 표현한 것 세마포 해결안Semaphore Soluti..
7.1 고전적인 동기화 문제들 많은 클래스의 병행 제어 문제에 대한 예로서 중요한 여러가지 다른 동기화 문제 제시 유한 버퍼 문제 Readers-Writers 문제 식사하는 철학자 문제 유한 버퍼 문제 6.1절의 유한 버퍼 환경의 생산자-소비자 문제 참고 (https://coding-rocker.tistory.com/133) 11. 프로세스 동기화: Chapter 6. Synchronization Tools (Part 1) 6.1 배경Background 프로세스가 병행concurrent 또는 병렬parallel로 실행될 때 여러 프로세스가 공유하는 데이터의 무결성에 문제가 생길 수 있음 생산자-소비자 문제 생산자: 버퍼에 새 항목을 초기화 coding-rocker.tistory.com 동기화 문제 - 유..
6.7 모니터 mutex락과 세마포는 타이밍 오류를 야기할 수 있음 예시 모든 프로세스는 mutex라는 이진 세마포 변수를 공유함 mutex 변수의 초기값은 1 각 프로세스는 임계구역에 진입하기 전에 wait(mutex)를 실행해야 함 각 프로세스는 임계구역을 나올 때 signal(mutex)를 실행해야 함 가정 1) 예시 프로세스의 순서가 지켜지지 않을 경우 (wait()과 signal() 연산의 순서가 뒤바뀌는 경우) 두 프로세스가 동시에 임계구역에 있을 수 있음 (상호 배제 요구조건 위반) 예시 코드 signal(mutex); ... cirical section ... wait(mutex); 가정 2) signal(mutex)를 써야 할 곳에 잘못해서 wait(mutex)를 쓴 경우 세마포를 사용할..
6.5 뮤텍스 락Mutex Locks 임계구역에 대한 하드웨어 기반 해결책은 복잡하며 응용 프로그래머는 사용할 수 없음 대신 운영체제 설계자들은 임계구역 문제를 해결하기 위한 상위 수준 소프트웨어 도구들을 개발함 뮤텍스락 mutex lock 세마포어semaphore 모니터monitor 뮤텍스 락 가장 가장 간단한 형태의 소프트웨어 동기화 도구 mutual exclutison의 축약어 구현 프로세스가 임계구역에 들어가기 전에 반드시 락을 획득해야 하고, 임계구역을 빠져나올 때 락을 반환해야 함 acquire() 함수를 통해 락을 획득 release() 함수를 통해 락을 반환 acquire()과 release() 함수 호출은 원자적atomic으로 수행되어야 함 compare and swap을 사용하여 구현할..
6.3 Peterson의 해결안Peterson's Solution Dekker's Algorithm 2개의 프로세스를 위한 해결책 Eisenberg & Mcguire's Solution N개의 프로세스가 lower bound N-1 waiting time을 보장하는 해결책 Peterson의 해결안 critical section에 대한 고전적인 소프트웨어 기반 해결책 현대 컴퓨터 구조가 load & store 같은 기본적인 기계어를 수행하는 방식 때문에 이러한 구조에서 올바르게 수행한다고 보장할 수 는 없음 그러나 critical section 문제를 해결하기 위한 좋은 알고리즘적인 설명을 제공 상호 배제, 진행, 한정 대기의 요구 조건을 중점으로 다루는 소프트웨어 설계를 하는 데 필요한 복잡성을 잘 설명..