목차
■ 리눅스란 무엇인가?
■ GNU는 무엇인가?
■ 리눅스의 특징
■ 명령해석기 : 쉘(shell)
■ Linux Kernel은 무엇인가?
■ 프로세스의 모습은?
■ 여러개의 프로세스는?
■ Thread는 어떻게 구현되어 있는가?
■ 프로세스 상태변화의 특이점?
■ Fork()의 문제점 및 해결방법은?
■ Zombie는 어떤 상태인가?
■ Scheduler의 모습은?
■ 동적 우선순위는 어떻게 부여되는가?
■ 동적 Timeslice는 어떻게 계산되는가?
■ 스케줄링(scheduling)은 어떻게 구현되는가?
■ 어떻게 sychronization를 보장하는가?
■ Deadlocks 발생과 해결책
■ GNU는 무엇인가?
■ 리눅스의 특징
■ 명령해석기 : 쉘(shell)
■ Linux Kernel은 무엇인가?
■ 프로세스의 모습은?
■ 여러개의 프로세스는?
■ Thread는 어떻게 구현되어 있는가?
■ 프로세스 상태변화의 특이점?
■ Fork()의 문제점 및 해결방법은?
■ Zombie는 어떤 상태인가?
■ Scheduler의 모습은?
■ 동적 우선순위는 어떻게 부여되는가?
■ 동적 Timeslice는 어떻게 계산되는가?
■ 스케줄링(scheduling)은 어떻게 구현되는가?
■ 어떻게 sychronization를 보장하는가?
■ Deadlocks 발생과 해결책
본문내용
실행가능 한 태스크이며 스케줄러는 이를 태스크에서
실행함
■ 어떻게 sychronization를 보장하는가?
● 스핀락(Spinlock) : Multiprocessor 동기화용
code)
spinlock_t mr_lock = SPIN_LOCK_UNLOCKED;
spin_lock(&mr_lock);
/*critical section*/
spin_unlock(&mr_lock);
○ 역할 : Spinlock임 오직 하나만 critical section에 들어갈 수 있도록 함
○ 원리 : 만약 어떤 쓰레드가 이미 잠겨진 스핀록을 다시 잠그려 시도한다면 그 쓰레드는 busy waiting됨
lock을 잠글 수 있을 때까지 기다림. 만약 록이 열려있으면 록을 잠근 다음 진행게 됨
=> 결국 멀티프로세싱 동기화 가능
○ 단점 : 이미 잠겨진 스핀록이 다른 쓰레드들을 스핀하도록 하는 것은 프로세서 시간을 소모하므로 스핀록으로
오랫동안 계속 잡고 있는 경우 CPU 소모됨
○ 쓰임 : 스핀록은 가볍고 소유자가 하나인 록으로서 짧은 기간동안만 소유될수 있는 곳에 쓰여야함
● Semaphore : uniprocessor 또는 multiprocessor 동기화용
code)
struct semaphore
{
int count;
struct wait_queue *wait;
};
wait_queue
{
struct task_struct *task;
struct wait_queue *next;
};
○ 역할 : mutex로 호배제도 가능하며 semaphore counter로 다중배제 가능
○ 원리 : 쓰레드를 휴면(sleep)시킨 다음 록을 잠글 수 있을 때 깨어나게 하는 것함. 이렇게 하면 프로세서가 놓여지게 되고 다른 코드를 실행할 수 있게 해줌
○ 단점 : 블록(block)된 쓰레드를 넘나드는 두번의 context switch가 발생함
※ context switch는 순수한 오버헤드임
○ 쓰임 : 락을 오랫동안 소유해야 하는 경우(critical section에 오랫동안 머물러야 하는 경우)
■ Deadlocks 발생과 해결책
● 발생
○ 프로그램 하나에 세마포어를 두개 이상 쓸 경우, 서로 다른 두 제어 경로에서 서로 상대방이 점유하고 있는 세마포어가 해제되길 기다리며 동작을 멈출 경우에 발생함
● 해결책
○ 주소순서에 따라 세마포어에 대한 요청을 수행
(가장 낮은 주소에 위치한 세마포어 자료구조에 세마포어 요청을 먼저 수행)
실행함
■ 어떻게 sychronization를 보장하는가?
● 스핀락(Spinlock) : Multiprocessor 동기화용
code)
spinlock_t mr_lock = SPIN_LOCK_UNLOCKED;
spin_lock(&mr_lock);
/*critical section*/
spin_unlock(&mr_lock);
○ 역할 : Spinlock임 오직 하나만 critical section에 들어갈 수 있도록 함
○ 원리 : 만약 어떤 쓰레드가 이미 잠겨진 스핀록을 다시 잠그려 시도한다면 그 쓰레드는 busy waiting됨
lock을 잠글 수 있을 때까지 기다림. 만약 록이 열려있으면 록을 잠근 다음 진행게 됨
=> 결국 멀티프로세싱 동기화 가능
○ 단점 : 이미 잠겨진 스핀록이 다른 쓰레드들을 스핀하도록 하는 것은 프로세서 시간을 소모하므로 스핀록으로
오랫동안 계속 잡고 있는 경우 CPU 소모됨
○ 쓰임 : 스핀록은 가볍고 소유자가 하나인 록으로서 짧은 기간동안만 소유될수 있는 곳에 쓰여야함
● Semaphore : uniprocessor 또는 multiprocessor 동기화용
code)
struct semaphore
{
int count;
struct wait_queue *wait;
};
wait_queue
{
struct task_struct *task;
struct wait_queue *next;
};
○ 역할 : mutex로 호배제도 가능하며 semaphore counter로 다중배제 가능
○ 원리 : 쓰레드를 휴면(sleep)시킨 다음 록을 잠글 수 있을 때 깨어나게 하는 것함. 이렇게 하면 프로세서가 놓여지게 되고 다른 코드를 실행할 수 있게 해줌
○ 단점 : 블록(block)된 쓰레드를 넘나드는 두번의 context switch가 발생함
※ context switch는 순수한 오버헤드임
○ 쓰임 : 락을 오랫동안 소유해야 하는 경우(critical section에 오랫동안 머물러야 하는 경우)
■ Deadlocks 발생과 해결책
● 발생
○ 프로그램 하나에 세마포어를 두개 이상 쓸 경우, 서로 다른 두 제어 경로에서 서로 상대방이 점유하고 있는 세마포어가 해제되길 기다리며 동작을 멈출 경우에 발생함
● 해결책
○ 주소순서에 따라 세마포어에 대한 요청을 수행
(가장 낮은 주소에 위치한 세마포어 자료구조에 세마포어 요청을 먼저 수행)
키워드
추천자료
- 조세법률주의
- 단군신화의 의미와 기능
- 파주시 여성회관의 여가교육프로그램이 성인여성의 생활만족도에 미치는 영향
- 고소설감상 중간과제 홍길동전 장르적 시각
- ERP(전사적자원관리)의 등장배경, ERP(전사적자원관리)의 특징, ERP(전사적자원관리)의 구축...
- 체육과(체육교육)의 특징, 체육과(체육교육)의 목표, 체육과(체육교육)의 내용, 체육과(체육...
- 인지과학의 의미와 특징, 등장배경, 관련학문에 대하여
- 인지과학의 의미와 특징, 등장배경, 관련학문에 대하여
- [건설업][건설산업][건설수요][건설금융][건축][건설]건설업(건설산업)의 의의, 건설업(건설...
- [이명박정부의 경제정책] 이명박정부의 경제정책에 대한 분석, 특징 및 문제점과 노무현 대통...
- 광고 속의 성차별
- 김대중정부 생산적 복지(국민의 정부 생산적 복지) 분류, 김대중정부 생산적 복지(국민의 정...