DKU-Embedded-Lab / Operating-System-Three-Easy-Pieces

0 stars 0 forks source link

29장~33장_p403 #6

Open ChoiGunHee opened 6 years ago

ChoiGunHee commented 6 years ago

스터디 자료 : Operating System Three Easy Pieces , xv6 Operating System 시간 : 01/17 ( PM 4:00 ~ PM 6:00 ) 장소 : 미디어센터 516 호

1. 스터디및 발표자료 작성

2. 현재 스터디 질문 제출

heyheygo99 commented 6 years ago
kwanghee0124 commented 6 years ago
SeungBu commented 6 years ago

질문 늦게올려서 죄송합니다 다음부턴 제시간에잘올리겠습니당!

ChoiGunHee commented 6 years ago

@heyheygo99 Q1 답변 : 일반 시그널과 동일하게 작동합니다. 더 빠르다는 내용보다는 CPU가 공회전을 안하기 때문에 더 효율적입니다.

Q2 답변 : 호출하는 프로세스에서 권한이 있다면 가져옵니다.

Q3 답변 : 안드로이드 핸들러는 이 책에서 말하는 걸 잘 구현한 인터페이스입니다. 다만, 프로세스간의 통신이기 때문에 책에서 말하는 CPU가 직접 사용하거나 하는건 아니라서 내부적으로는 스레드와 동일할 것으로 생각합니다.

@kwanghee0124 Q1 답변 : 보이드로 바꾼 이유는 굳이 할당에 실패했는지 안했는지 알려줄 필요가 없어서 입니다. 할당에 실패할 경우만 리턴하고 할당에 성공하면 락으로 인하여 무조건 삽입이 성공하기 때문입니다.

Q2 답변 : 따로 조건이 없습니다. 프로세스의 상태을 대기에서 준비로 바꾸면서 큐도 대기큐에서 준비큐로 바꿔주게 됩니다. 순서를 보장하지 않기 때문에 언제 실행될지 모릅니다.

Q3 답변 : 락 스케줄링은 따로 없고, 대기큐에서 준비큐로 바뀌게 되면 스케줄러가 관리합니다.

@SeungBu Q1 답변 : CPU는 다른 프로세스들을 처리하고 있습니다.

Q2 답변 : 리눅스는 poll()로 구현할 수 있고, 윈도우는 IOCP 방식으로 대처 합니다. 아래에 링크달았습니다. http://ozt88.tistory.com/23

Q3 답변 : 현재 단일 CPU만 사용하는 것은 찾기 힘듭니다. 왜냐면 단일 CPU에도 코어가 2코어 4코어 씩 들어가 있기 때문입니다. 내부적으로는 다중코어입니다. 단일 스레드를 사용하는 대표적인 프로그램은 Node.js입니다. 이벤트기반의 처리를 사용합니다.