본문 바로가기
반응형

분류 전체보기33

framework vs. library 노마드코더 영상 정리해놓은 글 그냥 놔두면 다시 까먹을 것 같아서... 요약 정리 "너가 코드를 컨트롤 하는가?" vs. "누군가의 규칙을 따라 코딩하는가?" Library "내가 코드를 컨트롤 한다." "내가 코드를 컨트롤한다."의 의미는 내가 필요할 때 코드를 불러와 쓴다는 뜻이다. 즉, 내가 코딩을 하다가 어떤 기능을 구현하기 위해 "내 입맛에 따라" 라이브러리를 선택해 기능을 구현할 수 있다는 뜻이다. 따라서 라이브러리가 달라진다거나 잘못 사용했다고 해서 프로젝트가 망가지거나 회복할 수 없게 되는 경우는 거의 없고 대체제가 항상 존재한다. 예시 JQuery pandas Framework "누군가의 규칙에 따라 코딩을 한다." "누군가의 규칙에 따라 코딩을 한다."의 의미는 우리가 프레임워크를 써서.. 2022. 12. 9.
[pintos] Project1:Threads - Priority Scheduling (2) priority preemptive scheduling에 이어서 priority inversion을 해결하기 위해 priority donation을 구현해야한다. priority inversion pintos manual과 교재의 설명을 참고해 정리하면 H, M, L로 priority가 낮아지는 세 프로세스가 있고 priority scheduling을 따라 프로세스가 실행되면 H, M, L, 순서로 실행이 끝나야 한다. 하지만 아닌 경우가 발생하는데 이때 priority inversion이 발생했다고 한다. 만약 H가 L에 점유되어 있는 lock을 기다려야 하는 상황이 생겼다고 가정하자. H는 L이 lock을 풀어줄 때까지 CPU를 점유하지 못하고 waiting 상태에 놓인다. L이 lock을 풀어주는 .. 2022. 12. 9.
[pintos] Project1:Threads - Priority Scheduling (1) 기존의 pintos의 경우 Round Robin 기법으로 priority에 상관없이 ready_list에 들어온 순서대로 프로세스들이 일정 시간동안 돌아가며 실행된다. 여기에 이제 priority를 고려해 priority가 높은 process부터 일정 시간동안 실행될 수 있도록 Priority Scheduling을 추가할 예정이다. 핀토스 메뉴얼에 따르면 Priority Scheduling을 위해 구현해야 할 내용은 아래와 같다. priority preemptive scheduling lock, semaphore, condition variable에서 깨어날 때 priority가 제일 높은 thread가 먼저 깨어나야 함 priority donation priority preemptive scheduli.. 2022. 12. 9.
[pintos] Project1:Threads - Alarm Clock 학교에서 pintos 프로젝트를 운영체제 시간에 프로젝트 과제로 한 학기동안 진행했는데 마감과 기타 다른 과목에 쫓겨 제대로 못한 거 같아 다시 해보려고 한다.. 학교에서는 project3에 이 부분을 다루지만 pintos manual에서는 project1에 해당하니 pintos manual 순서대로 복습 및 추가 공부를 진행해보려한다.. 모든 핀토스 프로젝트는 서강대학교에서 제공한 자료를 기반으로 진행했습니다 Alarm Clock Alarm Clock 파트에서 우리에게 요구하는 것은 busy waiting을 없애는 것이다. devices/timer.c의 timer_sleep()의 busy waiting 없애기 void timer_sleep (int64_t ticks) { int64_t start = t.. 2022. 12. 9.
728x90