[회고] pintos project 1 - thread

esmin·2021년 2월 3일

pintos

목록 보기
3/6

한 일

  1. Alarm clock
    Busy waiting으로 구현되어있던 thread를 sleep 시키는 기능을, sleep / wake-up으로 구현했다. CPU자원을 효율적으로 쓸 수 있었다.

  2. Priority Scheduling / Advanced Scheduling
    Round Robin 방법으로 구현되어있던 것을 우선순위 방법으로 개선하였고, 이후에 MLFQ 방법으로 구현했다.


잡념

아. low-level로 내려가다보면은 끝이 없구나!
깊게 파다간 전자공학까지 내려갈라!

깊이있게 공부하는거랑, 어느정도 깊이만 공부하고 넓게 공부하는거랑. 둘 사이의 상충관계를 잘 이해하고 공부해야하는 듯 하다.

Pintos 공부하면서, 하나부터 열까지 다 이해하고 싶었지만 그렇게 하지는 못했다. 모든 개념을 이해하고 구현하기는 힘든 듯 하다. 교안과 각종 자료를 참고해서 구현해보았고, 잘 돌아가지 않는 경우에는 로직을 확인해보고 디버깅을 했다. 새로운 개념이 필요할 때에면 개념을 숙지하는 것을 반복하면서 공부했다.


도움 받은 자료

Alarm Clock
https://bowbowbow.tistory.com/20

OS 기초개념 및 RR. MLQ, monitor 개념


배운개념

메모리자원 활용 관점에서

MUTEX(Mutual Exculsion)

상호 배제를 구현하기 위해 만든 개념

  • semaphore
  • lock
  • monitor

Kernel Stack, Virtual memory

https://blog.naver.com/lache96/140051813931

http://m.egloos.zum.com/sweeper/v/2988689

Linux Kernel Stack에 대한 오해
https://m.blog.naver.com/PostView.nhn?blogId=lache96&logNo=140051813931&proxyReferer=https:%2F%2Fvelog.io%2F&view=img_1

운영 체제 : 컴퓨터 과학 특강 # 18
https://youtu.be/26QPDBe-NB8?t=288

Kernel Space와 User Space를 나타내는 그림
http://www.linux.it/~rubini/docs/ksys/#:~:text=A%20system%20call%20is%20implemented,in%20the%20other%20processor%20registers.

Caller(콜러)와 Callee(콜리)
http://cr3denza.blogspot.com/2015/03/caller-callee.html
-> Caller Callee Push Pop을 통한 저장/복원
https://itinformation.tistory.com/54

CPU자원 활용 관점에서

Thread

CPU 자원 할당 규칙

Busy Waiting(Busy-loop, spinning)

  • Block을 구현하는 비효율적인 방법...

0개의 댓글