목록3학년 1학기 (104)
오래 못 할 짓 하지 않기
Synchronization● 배경Process가 서로 communication 하는 법으로는 - Message passing- Shared memory 두 가지가 있다. 이런 경우에는 주로 Shared memory에서 Conflict 가 생기는데그에 대해 대표적인 예시가 Producer - consumer problem이다. ● Interleaved problem "나뭇잎 사이사이에 뭐가 들어온다." 이 흐름은 저번에 했음. 주의해서 봐야하는 건 Produer와 Consumer에 있는 counter ++ , -- 이다. ▼ 저걸 Assembly Language로 바꿔보면 다음과 ..
Linux Scheduler ● ver 2.5 이상 ▶ O(1) Scheduling algorithm 구현 : Processor를 고르는 시간만 쓰인다. ● ver 2.6 이상 ▶ Completely Fair Scheduler (CFS) Scheduling ● CFS 알고리즘 : 모든 프로세스가 공평하게 CPU 할당을 받을 수 있는 알고리즘 각각의 class마다 다른 Priority가 있다. - 기본적으로 priority가 100~139 범위에 있는 프로세스들 →CFS 알고리즘 - priority가 0~99 범위에 있는 프로세스들 ( real-time 프로세스 ) →FIFO 알고리즘 OR Round Robin 알고리즘 즉 스케줄러는 우선순위가 높은 Class에 있는 애들 중에서 우선순위가 높은 프로세스를..
Thread Scheduling 요새는 OS에 의해 실행되는 Kernel - Level Threads 가 메인이다.User - Level Threads 는 Library로 관리한다. 요약: Kernel Thread = OS가 관리 / User Thread = Library가 관리 CPU를 작동시키려면, User Thread는 연관된 Kernel Thread랑 연결되어야 함. ( LWP ) User Thread와 Kernel Thread를 이어주는 역할을 하는 건 Light-weight Process이다. 그렇게 이어진 Kernel Thread를 통해 Hardware에 접근한다. Multi- Processor Scheduling● 상황에 맞게 해야한다. ..
Knapsack problem ( 배낭 알고리즘) 한 도둑이 박물관에 쳐들어가서 물건을 훔친다. 가져갈 수 있는 배낭의 크기는 정해져 있으므로 어떻게 훔쳐야 가장 이득(?)일까? 를 고려하는 알고리즘이다. 케이스는 두 가지로 나뉜다. 1) 0-1 knapsack : 조각상이나 모나리자 같은 작품은 가져오거나 안 가져오는 거임. 쪼개거나 부수면 가치가 사라진다. = 담으려는 Item을 쪼갤 수 없는 경우 이런 경우에는 DP로만 해결할 수 있으며 Greedy 알고리즘은 효과가 없다. 2) Fractional kanpsack : 다이아가루, 금가루는 그냥 쪼개서 들고 나와도 괜찮음 = 담는 Item을 쪼갤 수 있는 경우 이 때는 반대로 Greedy 알고리즘만 사용할 수 있다. 1. Fractional knap..
칸 채우기 [ 값 채우는 Table , 어디에서 잘라야 Optimal인지 저장하는 Table 나눠야 함 ] 답 ▼ 더보기 문제 : 동전 개수 최소화 하는 문제가 Greedy 알고리즘으로 안 될 수도 있다. 그런 경우를 제시해봐라. 100보다 작은 값에, Coin 개수가 4개인 걸로. ▶ (영국 돈 단위) 잔돈은 30원인데 , 동전 단위는 {1,10,25} 일 때, ● Greedy 알고리즘 : 25 *1 + 1*5 = 6개 ● DP 알고리즘 : 10 * 3 = 3개로 바로 끝남 DP 알고리즘으로 해서, 각 위치별로 동전 개수를 채워넣는다. 3,3을 보자. ▶ 3원을 거슬러 줘야 한다. ▶일단 뺄 수 있는 1원을 빼면 2가 남는다. ▶ 2원을 거슬러 줄 때 Optimal값을 사용한다. = 2 , 내가 뺐던 ..
https://min-h-study-review.tistory.com/247 CPU Scheduling Algorithms은 크게 6가지가 있다. ◼ First-come, first-served (FCFS) scheduling ◼ Shortest-job-first (SJF) scheduling ◼ Round-robin scheduling◼ Priority scheduling ◼ Multilevel queue scheduling◼ Multiple feedback-queue scheduling하나씩 분석해보자 First-Come, First-Served Scheduling선입 선출식특징)- CPU 요청이 들어오는 순서대로 할당이 이루어진다.- 가장 간단함- 비선점형 = Interr..
CPU Scheduling 목적 : CPU 활용도를 최대로 하기 위해 ( 멀티 프로그래밍 / 멀티 태스킹을 사용함 ) ● CPU-IO Burst Cycle : burst = " 열심히 일한다 " 정도로 생각하면 된다. Load , add , read를 할 땐 CPU Burst Time 이고 I/O가 일을 할 때, 즉 CPU가 I/O 작업이 끝나기를 기다릴 때는 (I/O 기준) I/O Burst = (CPU 기준) I/O wait 라고 한다. (주로) CPU Burst 뒤에는 I/O Burst가 따라온다. - I/O bound process = 짧고 많은 개수의 burst로 이루어져 있음- CPU bound process = 적은 수의 burst로 이루어져 있음 ..
Threading Issue ● fork , exec - fork : 현재 명령어를 실행한 프로세스를 복제한다. 복제할 때는 만들어진 process는 Thread를 가져오지 않고, 단일 Thread 로 시작한다. - exec : 현재 프로세스를 새로운 프로세스로 덮어씌운다. ● Thread Cancellation Type - Asynchronous Cancellation 은 Cancel하기로 한 Thread를 즉시 Terminate시킨다. - Deffered Cancellation 은 Terminate 되어야 하는지 주기적으로 확인시킨다. Linux에서는 signal을 통해서 Thread Cancellation 이 이루어진다. Cancel을 할 수 있느냐 없느냐 상태도 있어서 이걸 Table로 나타내면 ..
이런 테이블이 있다고 생각해보자. - dept_name 마다 할당받은 building이 있다. - dept_name 마다 정해진 budget이 있다. 위 테이블을 보면 dept_name - building - budget을 하나의 세트로 본다면 중복되는 데이터들이 너무 많다. 만약 저 중복되어있는 데이터들을 Delete , Update 하려고 하거나 새로운 Data를 넣으려고 할 때 수고로움과 누락될 수 있는 것들을 생각하면 바람직한 구조는 아닌 것 같다. 이러한 정보의 반복을 피하는 방법 : 정규화 각각의 Relation 끼리 연관된 Data들끼리 쪼개자 목적 : 중복을 피하기
Entity - Relationship Model : Entity들 사이의 관계를 나타내는 모식도라고 생각하면 된다. Entity들끼리 Mapping 되는 Cardinalitie는 위와 같다. ERD에서 볼 때, - 방향 O 선 = One - 방향 X 선 = Many ERD에서의 Primary Key Relationship set " Advisior "의 Primary key 는 그걸 이루고 있는 두 개의 Entity의 primary key로 구성된다. ● One to One : 참여하고 있는 Entity sets 중에 아무 primary key를 가져오면 된다 ● One to Many : Many쪽의 primary key를 가져오면 된다 ● Many to One : Many쪽의 primary key를 ..