본문 바로가기

반응형

잡다한 IT/운영체제

polling 과 spin lock Q. How is spinlock different from polling? Answer 1. Answer 2. (출처 : http://brownbears.tistory.com/45) 더보기
pthread 관련 함수-2 Thread 동기화 ■ Mutex 함수 - mutex 잠금 객체를 만드는 함수 : pthread_mutex_init() - mutex 잠금을 얻는 함수 : pthread_mutex_lock() - mutex 잠금을 되돌려주는 함수 : pthread_mutex_unlock() - mutex 잠금 객체를 제거하는 함수 : pthread_mutex_destroy() ■ pthread_mutex_init() 12#includeint pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutex_attr *attr); mutex : mutex 잠금 객체 mutex_attr : 이 값을 이용해서 mutex 타입을 결정할 수 있음. NULL 일 경우 기본값이 fast.. 더보기
pthread 관련 함수-1 ■ pthread_create() : 쓰레드 생성 12#includeint pthread_create(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *arg) thread : 쓰레드가 성공적으로 생성되었을 때, 넘겨주는 쓰레드 식별 번호 attr : 쓰레드의 특성을 설정하기 위해서 사용한다. NULL 일 경우 기본 특성 start_routine : 쓰레드가 수행할 함수로 함수포인터를 넘겨준다. arg : 쓰레드 함수 start_routine을 실행시킬 때, 넘겨줄 인자 ■ pthread_join() : 쓰레드 종료/정리 ( process wait()함수와 비슷) 12#includeint pthread_join(p.. 더보기
MMU 와 MPU 의 차이점 MMU와 MPU의 기능 및 차이점, 그리고 MMU 가 MPU 기능을 가지고 있다면 , 왜 MPU가 사용? 사용되는 곳? http://xenostudy.tistory.com/10 참고 사이트 더보기
물리 메모리 관리 #물리 메모리 관리 자료구조 Node -> Zone -> Page Frame Node 는 여러개의 Zone 으로 구성 됨. Zone 은 여러개의 Page Frame으로 구성됨. Page Frame 은 물리 메모리의 최소 단위. #BUDDY ALLOCATOR 와 SLAB ALLOCATOR Page Frame은 보통 최소 단위로 4KB를 사용한다. 이로 인해서 외부 단편화(External Fragmentation) , 내부 단편화 (Internal Fragmentation) 가 발생한다. 이러한 단편화를 해결하기 위해서 리눅스에서 Buddy allocator 와 Slab allocator 를 사용한다. 하지만 Buddy 시스템이 Page Frame 을 반복적으로 할당/해제 해야하는데 오버헤드가 많이 발생하였.. 더보기
스케줄링 고려할 점 스케줄링 고려할 점 1. 어떤 task 를 ready queue( run queue) 에서 선택할 것인가? 일반 task : CFS( completely fair scheduler) 를 이용 실시가 task : FIFO , RR, DEADLINE 정책을 사용 2. CPU의 각 run queue 의 부하가 균등하지 않은 경우에는? 부하 균등( load balancing ) 기법을 활용한다. load_balance() 함수에서는 특정 CPU가 매우 바쁘고 다른 CPU들은 idle 하다면 다른 CPU로 task를 이주시켜서 전반적인 성능 향상을 시도한다. 이때 특정 task 를 이주하기로 결정했다면, 문제는 '어느 CPU' 로 이주시킬 것인지 결정하는 것이다.이때는 task 이주로 인한 성능 저하를 최소화 시.. 더보기
fork , vfork , clone fork , vfork, clone 의 특징 fork - 프로세스를 하나 더 생성한다. 과거에는 부모의 정보를 모두 복사해서 프로세스 생성에 시간이 오래 걸렸다. 하지만 최근에는 COW (Copy On Write) 라는 방식으로 쓰기가 일어날 떄만 복사하여 문제점을 해결했다. vfork - 프로세스를 하나 더 생성하는 방식으로, fork 과 같다. 하지만 fork 나 vfork 는 결국 최종적으로 커널 내부에서 do_fork 함수를 호출하는데, 이때 vfork 일 경우에는 새로 생성된 프로세스가 exit 이나 exec 를 실행하기 전까지는 블락을 시킨다. (참고 사이트 : http://pinocc.tistory.com/2 ) clone - 프로세스가 아닌 쓰레드를 생성한다. 쓰레드는 부모와 자원을 공유하.. 더보기
set-associative cache Set - Associative 에 대해서 더 공부해보기. 더보기

반응형