CS13 세마포어 vs 뮤텍스 참고 영상 우아한테크의 10분 테코톡 와일더의 Mutex vs Semaphore를 보고 정리해 보았습니다. 아래 영상은 꼭 봐주세요! https://www.youtube.com/watch?v=oazGbhBCOfU 사전 지식 교착 상태 두가지 이상의 작업이 서로 상대방의 작업이 끝나기를 하염없이 기다리는 상태 예를 들어 A, B가 존재하고, 각각 연필과 종이를 가져갔다 가정해보자. (점유) 그러나 필기를 위해서는 둘다 필요하니 A와 B는 각각 종이와 연필을 요청한다.(대기) 당연히 A, B는 필기를 위해 줄 수 없으니 자원을 요청하지만 이 요청을 무한히 대기하는 상태를 교착상태라한다. 연필과 종이는 공유자원이라 한다. 이런 공유 자원이 속해 있는 공간은 임계영역이라 한다 임계 영역 : 교착 상태가 발생 가.. 2023. 4. 3. Dijkstra with Python 소개 다익스트라는 최단경로 알고리즘 중에서도 대표적인 예시라고 할 수 있다. 하나의 시작 정점에서부터 모든 다른 정점까지의 최단 경로를 구하는 알고리즘이다. (다만 weight값이 음수이지만 않는다면) 배경 최단 경로 알고리즘은 graph 자료구조를 사용하며, node와 edge를 이용해 실제 거리를 나타낸다. 1. 출발 노드, 도착 노드 설정 2. edge에 값을 부여 3. 출발 노드부터 시작해 방문하지 않은 인접 노드 방문, 거리를 계산하고, 현재거리와 비교해 더 작은 값을 넣는다. 4. 방문하지 않은 노드 중 가장 비용이 적은 노드 선택 5. 해당 노드를 거쳐 특정 노드로 가는 경우를 고려해 최소 비용 갱신 6. 4~5를 반복 ex) 이런 그래프가 있다 가정하자 자 그럼 표를 만들어서 보자 0 2 .. 2023. 2. 26. 스레드(2) - 스레드 with Java 본격적으로 스레드에 대해 배워보자 프로세스 실행중인 프로그램 자신의 주소 공간에서 순차적으로 실행되는 스트림 이렇게 정의 내릴 수가 있다. 스레드 프로그램 내의 단일 순차적 제어 흐름 OS 측면에선 각 스레드들은 밑에 내용들로 구성되어 있다. PC (program counter) Register Set Stack 스레드들이 서로 공유하는 것이 있는데 코드 영역 데이터 영역 OS resources ex) open files 싱글 스레드 프로세스 자 보면 스레드 하나가 있고, 위에서 설명한 대로 register, stack, pc(는 안보인다 지금은), code, data, files가 있는 것을 확인 가능하다. 멀티 스레드 프로세스 확실히 차이가 나는 것을 확인이 가능하다. 각 스레드마다 regiset, .. 2022. 12. 26. 스레드(1) - 멀티 프로세스(병렬처리) 스레드에 관한 이야기를 하기 전에 병렬 프로그램에 대해 생각을 해보자. 과거에는 나도 병렬 프로그래밍과 스레드로 프로그래밍 하는 것의 차이를 생각 못했었다. 이제 다른 것을 알게 되었으니 한번 정리하고자 하낟. 요약해서 간단하게 정리하면 병렬 프로그래밍이란 하나의 프로그램을 하나의 프로세스가 맡는 것이 아닌 n개의 멀티 프로세스를 이용하여 개발을 하는 것이다. 스레드는 최근 스레드 별로 프로세스를 할당하는 것으로 보이나 엄연히 하나의 프로세스에서 n개의 스레드를 실행하는 것과는 다른 이야기다. 멀티 스레드 같은 경우는 I/O같은 작업에서 압도적인 성능을 향상시켜주는데, 병렬처리는 CPU 관련 처리에서 성능을 향상 시켜 준다. Flynn’s Taxonomy on Parallel COmputer SISD 하.. 2022. 12. 26. 이전 1 2 3 4 다음 728x90