일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 library
- c++ heap
- gui
- C++ gui
- vim-go
- 자료구조
- C++ library
- 운영체제
- Nebula
- go channel
- a tour of go
- go
- C++
- JUCE
- JUCE 튜토리얼
- Docker
- 프로그래밍
- OS
- 알고리즘
- tour of go
- C언어
- 백준
- 공룡책
- C++ gui 라이브러리
- LOB
- JUCE라이브러리
- BOJ
- 리듬게임
- 코딩
- Today
- Total
목록CafeM0ca (266)
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 : 프로세스간 공유 리소스에 대해 접근할 때 ..
목표 bounded-buffer, readers-writers, dining-philosophers 동기화 문제를 설명한다. 리눅스/윈도우에서 프로세스 동기화 문제를 해결하기 위한 특정한 툴을 소개한다. POSIX와 Java가 프로세스 동기화 문제를 풀어내는지 설명한다. POSIX와 Java API를 사용하여 프로세스 동기화 문제에 대한 해결방법을 디자인하고 개발하는 솔루션에 대해 알아본다. 고전적인 동기화 문제 생산자와 소비자 프로세스는 위 데이터 구조를 공유한다. n개의 버퍼로된 pool이 있고 각 버퍼는 하나의 항목을 저장할 수 있다고 가정하자. mutex 세마포어는 버퍼 pool에 상호 배제적으로 접근하기 위해 제공되며 1로 초기화 된다. empty와 full 세마포어는 빈 버퍼와 가득찬 버퍼의 ..
챕터5 CPU 스케줄링 CPU가 놀고 있으면 ready queue에서 프로세스를 뽑아서 실행시킨다. 이 작업은 CPU 스케쥴러가 담당한다. ready queue는 우선순위 큐, 트리, 단방향 링크드 리스트로 구현될 수 있다. ready queue에는 PCB가 들어 있다. CPU burst : 프로세스가 cpu를 사용하는 시간 dispatcher CPU 스케줄링의 포함된 기능중 디스패처가 있다. 디스패처는 CPU 스케줄러가 선택한 프로세스에 cpu 코어를 제어하는 모듈이다.(?) 한 프로세스에서 다른 프로세스로 context을 교환하는 일 사용자 모드로 전환하는 일 프로그램을 다시 실행하기 위해 사용자 프로그램의 알맞은 위치로 jumping하는 일 디스패처는 모든 context switch에서 발생하므로 ..
개발을 시작하기 위해 개발 환경 셋팅에 진심을 다하는 우리.. 텍스트를 입력하기 위해 vim을 설치하고 vim을 더 우아하게 사용하기 위해 vim-plug를 설치하고 '이게 있으면 더 좋겠다~' 하면서 코드는 뒷전이고 괜찮은 플러그인 찾는데 시간을 보내는 것 처럼 개발자들은 일하기 위해 일을 위한 일을 한다. Go언어 프로젝트 초기 셋팅에 대해 알아보자. vim 셋팅 에디터인 vim부터 건들자. github.com/junegunn/vim-plug junegunn/vim-plug :hibiscus: Minimalist Vim Plugin Manager. Contribute to junegunn/vim-plug development by creating an account on GitHub. github.c..
챕터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()에서 부모 ..
아래 내용은 'Go 언어를 활용한 마이크로서비스 개발'을 이해하기 위해 정리한 내용입니다. 책 구매는 여기를 참조하세요. -> http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791161751900&orderClick=LAG&Kc= Go 언어에서 에러처리 go에서 에러는 꼭 처리해주는게 좋다. 다른 언어처럼 예외처리와 유사한 패닉과 복구를 지원하지만, 사용하는 상황이 다름 go에서 panic 함수가 프로그램의 정상 실행을 중지시키고 Go의 모든 루틴이 defer된 함수 호출을 실행하고 나면, 로그 메시지를 출력하면서 프로그램을 종료한다. 이 방식은 일반적으로 코드상의 버그를 나타내는 unex..
틀린 내용 있으면 꼭 댓글 달아주세요. 프로세스 프로세스는 실행 중인 프로그램 프로그램은 passive entity(디스크에 저장된 file) 프로세스는 acitive entity(프로그램이 메모리에 올려진 상태에서 실행되는 것) process state 프로세스는 실행시 상태가 바뀌며 아래의 상태로 정의할 수 있다. new : 프로세스가 생성된 것 Running : 명령어들이 실행중인 것 Waiting : I/O와 같은 이벤트로 인해 대기중인 것 Ready : 프로세서(프로세스를 실행시키는 유닛)에게 할당되기를 기다리는 것 Terminated : 프로세스 실행이 끝난 것 PCB PCB는 아래의 정보를 갖고 있다. 프로세스를 운영체제 위에서 표현(보여주기 위한) 정보들을 담고 있다. (프로세스별로 바뀌는..
20살의 첫 해 나는 2월에 고등학교를 졸업했고 사회의 울타리를 벗어나 졸지에 백수가 되었다. 2018년 고등학교 2학년때 우스겟 소리로 대학이나 취업에 실패하면 창업을 하거나 프랑스에 있는 Ecole42나 가야겠다고 생각한 적이 있다. 2019년 고등학교 3학년 10월에 Ecole42의 프로그램을 그대로 한국패치 시킨 42seoul.kr이 한국에 상륙했다. 10월에는 한창 SW마에스트로를 진행중이였다. 같은 기수 박x현 형이 "야 너는 보험으로 이거나 들어놔라"라고 말해준 덕분에 지금은 배부르고 등따숩게 공부하며 지내고 있다. (형 감사합니다 ^^..) 42Seoul에서 나에게 intra ID를 jinykim으로 지어줬다. 42Seoul 구성원들은 나를 jiny라고 부른다. 알라딘의 지니같아서 이 별명..