일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- LOB
- Nebula
- tour of go
- 공룡책
- Docker
- C언어
- JUCE
- C++
- C++ library
- JUCE 튜토리얼
- go
- 알고리즘
- 코딩
- 연결리스트
- c++ heap
- 리듬게임
- 프로그래밍
- vim-go
- gui
- go channel
- C++ gui
- 백준
- a tour of go
- OS
- 자료구조
- BOJ
- JUCE library
- C++ gui 라이브러리
- JUCE라이브러리
- 운영체제
- Today
- Total
목록CafeM0ca (265)
CafeM0ca
공유메모리는 프로세스가 메모리를 공유해서 쓰는 메모리다. 그럼 누가 메모리를 연결 시켜주는가? 이 문제는 통신 문제로 넘어가서 서버와 클라이언트의 관계에 놓인다. a프로세스가 공유메모리를 사용할 수 있도록 열어주고(서버) b프로세스가 공유메모리에 접근한다(클라이언트)장점: 자원을 공유해서 쓸 수 있다. (ex: 쓰레드) 단점: 같은 자원을 공유해서 쓰다 보니까 항상 경쟁 상태다. -> 교착 상태 발생 가능성 있음 잘 쓰면 금이고 잘못 쓰면 독이 되니 메모리 관리 잘 하면서 써야된다.공유메모리는 shm로 생겼는데 처음에 쉬므라 읽었는데 곰곰히 생각해보니 share memory로 읽는게 맞는 듯 하다.(shmget 쉐어 메모리 겟) 생성->첨부->사용->때어냄->제거 shmget(key_t,size,shmf..
Operating System Concepts 8판 -한국어 답은 모카의 주관적인 생각이다. 참고만 하고 오타, 문제가 있으면 댓글로 남겨주시길 1.1 네트워크 컴퓨터와 전형적인 개인용 컴퓨터의 차이는 무엇인가? 네트워크 컴퓨터를 사용하는 것이 유리한 사용 시나리오를 설명하시오. - 결정적인 차이는 '효율'이다. 네트워크 컴퓨터는(Network Computer 이하 NC) 작은 메모리와 최소한의 연산이 가능한 CPU(성능이 떨어지는)를 가지고 있다. NC의 핵심은 모든 처리를 서버에 넘기는 점이다. 이 때, 서버 컴퓨터는 '어마어마한 성능을 가지고 있다'고 가정한다. 때문에 개인용 컴퓨터(Personal Computer 이하 PC)의 고성능 CPU를 사용하지 않아도 서버 컴퓨터를 통해 작업할 수 있어서 ..
프로세서: 하드웨어적으로 프로그램을 수행함 (네트워크 장비,디지털 미디어 장비 등)프로세스: 프로세서에 의해 실행 중인 프로그램인터럽트: 하드웨어&소프트웨어의 이벤트가 발생할 때 CPU가 처리할 수 있게 하는 것.인터럽트 핸들러: 인터럽트에 대응하여 특정 기능을 처리하는 기계어 코드 루틴인터럽트 벡터: 인터럽트 핸들러의 메모리 위치인데 인터럽트 우선순위를 지정하고 만약 둘 이상의 인터럽트가 처리 대기중이면 대기열에 저장함. 트랩(trap): 프로세서가 특정 시스템 기능을 사용하려 할 때 운영체제한테 요청하는 방법
간단한 자료구조라서 짜는데 별로 오래 안걸릴 줄 알았지만 최소 12시간 붙잡고 구현했다.모든 자료형에 대해 처리 해주고 싶었는데 C++은 정적언어라 불가능했다. 템플릿을 쓰던, auto를 쓰던 입력값에 대해 자료형을 알아내는 문법은 없더라..(이것땜에 하루 새벽 보내버렸고)일단 포기하고 int형만 받도록 했다. 아마 모든 자료형에 대해 처리하려면 오버로딩이나 자료형 테이블을 만들어서 테이블을 통해 연결리스트의 노드들을 이어줘야 할 듯 하다. (파이썬 쓰는게 답이다)컴파일 환경: g++ -std=c++11 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061..
링크드리스트를 2일째 구현중인데 머리가 아프다.모든 자료형에 대하여 처리 해주려 했는데 C++은 정적언어라 불가능하다..어떻게든 하려고 이곳 저곳(stackoverflow 라던가)에 질문 던젔는데 돌아오는 답변은 "그렇게 디자인 하지 마세요."였다. 차라리 python으로 처리 하는게 더 편할 듯.. C++로는 일단 단일 자료형에 대하여 처리 해야겠다.
모카가 시그마를 처음 배울 때, 시그마를 수식으로는 표현이 안되는데 C코드로는 표현이 가능하다. 가운데 문제를 식으로 표현 할 줄 몰라서ㅋㅋ.. 123456789101112131415161718#includeint main(){ int n; int binary=1; int sum[100]={0,}; int result=0; printf("n값: "); scanf("%d",&n); for(int i=1;i
인라인 함수는 함수와 다르게 코드를 대체한다. 뭔소린가 싶지만 루틴을 보면 안다.12345678910111213141516171819202122232425262728293031#includeusing namespace std;//선언과 정의 둘중 한 곳에서 inline 키워드를 함수 타입 앞에 써주면 된다.inline void hi() { cout
포인터는 익숙하지만 함수 포인터는 '으음?..' 하는 느낌이다. 정리할 겸 예제를 통해 알아보려 한다.12345678910111213141516171819202122232425262728#includeusing namespace std; const int Ex1(int n) { cout
int n1=10,n2=20;const int *p1 = &n1; // p1값 변화(o) / *p1값 변화(x)int const *p2 = &n2; // p2값 변화(x) / *p2값 변화(o)int * const p2==int const *p2 긴말없이 이렇게 알면 간단명료하다.p1의 값은 p1이 가르키는 주소.*p1의 값은 p1이 가르키는 주소의 값. 좀 더 이해하기 쉽게 접근하자면 왼쪽으로 읽는 방법이 있다.예를 들면 const int *p1 = &n1;에서변수 이름은 짜르고보자.const int **의 왼편에는 const가 없다. 그러므로 p1의 역참조값은 바뀔 수 있다.int의 왼편에는 const가 있다. 그러므로 p1이 가리키는 주소는 바뀔 수 없다. 좀 더 복잡한 선언을 보자.const in..
모카는 우분투를 사용한다. 방금 뇌리를 스친 생각이 '응용프로그램을 GUI로 실행시키고 끄는데 터미널로 컨트롤 할 수는 없을까?'라는 생각이다.그래서 일단 home 디렉토리에서 리눅스 음악플레이어인 'qmmp'를 실행시켜봤다.결과는 '찾을 수 없다'였다. (atom은 잘만 켜지던데 ㅎ... 환경변수랑 연관있는건가?) 모카는 find 명령으로 찾기로 했다.find [경로] [옵션] 경로는 /(루트)로 지정해주고 옵션은 name과 perm을 사용하기로 했다.(모카가 'qmmp'로 부터 알 수 있는 사실은 2가지다. 첫째로 실행파일 두째로 이름) find / -name qmmp -perm -300 | grep qmmp 루트부터 qmmp라는 이름을 최소한(-) 실행권한이 있는 프로그램을 찾아라 -name 인자로..