일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 코딩
- JUCE라이브러리
- C++
- JUCE
- 백준
- go channel
- 프로그래밍
- C++ gui
- gui
- 알고리즘
- JUCE library
- tour of go
- C언어
- a tour of go
- 자료구조
- vim-go
- LOB
- Nebula
- OS
- 연결리스트
- Docker
- go
- 리듬게임
- 운영체제
- c++ heap
- C++ library
- JUCE 튜토리얼
- BOJ
- 공룡책
- C++ gui 라이브러리
- Today
- Total
목록공룡책 (6)
CafeM0ca
7.1 윈도우와 리눅스가 multiple locking 매커니즘을 구현했는지 설명하시오. spinlock, mutex lock, semaphore, condition variable이 사용되는 상황을 설명하시오. 각각의 경우에 메커니즘이 왜 필요한지 설명하세요. multiple locking 매커니즘으로 spinlock,mutex lock, semaphore, condition variable을 제공한다. spinlock : 주로 바쁜 대기에 사용함. 구현이 편리. 바쁜대기가 sleep queue에 진입하는 것 보다 오버헤드가 낮음. mutex lock : 한 프로세스에서 여러 스레드가 리소스에 접근하는데 이 때 리소스를 잠그는데 유용하다. semaphore : 프로세스간 공유 리소스에 대해 접근할 때 ..
챕터4 연습문제 1번 : 멀티스레딩이 싱글스레딩 보다 성능이 좋은 프로그래밍 예시 3가지를 드시오 독립된 일들을 각각 스레드에게 맡길 때 task의 밸런스를 맞출 수 있고 데이터의 의존성을 식별할 수 있다.(network I/O, UI 렌더링 같은 일을 동시에 처리할 때) (테스크 병렬) 응답성, 자원 공유, 경제성, 규모성 data 단에서 데이터를 나눠서 스레드로 처리할 때 (데이터 병렬) 2번 : 암달의 법칙을 사용해서 어플리케이션이 60% 병렬 컴포넌트를 갖고 있을 떄 (a)2개의 프로세스 코어를 사용할 때와 (b)4개의 프로세르 코어를 사용할 때 값을 계산하세요. (a) 1 / ((1 - 60%) + 0.6 / 2) = 1 / (0.4 + 0.3) = 1 / (0.7) = 10 / 7 = 1.43..
챕터4 스레드 스레드는 thread id, program counter(PC), register set, stack으로 이루어져 있다. 스레드는 같은 프로세스의 포함되어 코드 영역, 데이터 영역, 열린 파일이나 시그널과 같은 운영체제 리소스를 공유한다. Parallelism의 종류 Data parallelism 데이터를 쪼개서 연산을 수행하는 것 배열이라는 데이터가 있으면 반으로 쪼개서 2개의 작업으로 나눠 연산 진행 Task parallelism 스레드간 각각의 고유한 일을 맡아서 처리하는 것 thread의 cancellation(취소) 취소되어야 할 스레드를 target thread라고 부른다. 두 가지 방식으로 취소할 수 있다. asynchronous cancellation : 한 스레드가 목적 스..
3.1) 3.30 Figure를 보고 LINE A의 결과물이 무엇인지 설명하세요. 코드를 실행하면 위와 같은 결과가 나온다. 의문점은 pid = fork()를 통해서 자식프로세스도 똑같은 코드를 갖게 될 텐데, 재귀적으로 fork()를 하는거라고 생각할 수 있다. forum.falinux.com/zbxe/index.php?mid=C_LIB&document_srl=412814 에 따르면 fork된 자식 프로세스는 딱 하나가 다른데, pid = fork()한 부분이 없어지고 pid = 0으로 갖게 된다. wait(NULL)은 자식 프로세스를 기다린다. 3.2) 부모프로세스에서 초기화를 포함하면 Figure 3.31에서는 얼마나 많은 프로세스가 생성되나요? 초기 부모프로세스 1개 첫번째 fork()에서 부모 ..
틀린 내용 있으면 꼭 댓글 달아주세요. 프로세스 프로세스는 실행 중인 프로그램 프로그램은 passive entity(디스크에 저장된 file) 프로세스는 acitive entity(프로그램이 메모리에 올려진 상태에서 실행되는 것) process state 프로세스는 실행시 상태가 바뀌며 아래의 상태로 정의할 수 있다. new : 프로세스가 생성된 것 Running : 명령어들이 실행중인 것 Waiting : I/O와 같은 이벤트로 인해 대기중인 것 Ready : 프로세서(프로세스를 실행시키는 유닛)에게 할당되기를 기다리는 것 Terminated : 프로세스 실행이 끝난 것 PCB PCB는 아래의 정보를 갖고 있다. 프로세스를 운영체제 위에서 표현(보여주기 위한) 정보들을 담고 있다. (프로세스별로 바뀌는..
Operating System Concepts 8판 -한국어 답은 모카의 주관적인 생각이다. 참고만 하고 오타, 문제가 있으면 댓글로 남겨주시길 1.1 네트워크 컴퓨터와 전형적인 개인용 컴퓨터의 차이는 무엇인가? 네트워크 컴퓨터를 사용하는 것이 유리한 사용 시나리오를 설명하시오. - 결정적인 차이는 '효율'이다. 네트워크 컴퓨터는(Network Computer 이하 NC) 작은 메모리와 최소한의 연산이 가능한 CPU(성능이 떨어지는)를 가지고 있다. NC의 핵심은 모든 처리를 서버에 넘기는 점이다. 이 때, 서버 컴퓨터는 '어마어마한 성능을 가지고 있다'고 가정한다. 때문에 개인용 컴퓨터(Personal Computer 이하 PC)의 고성능 CPU를 사용하지 않아도 서버 컴퓨터를 통해 작업할 수 있어서 ..