분류 전체보기 썸네일형 리스트형 커널모드 동기화 기법 - 뮤텍스(Mutex), 세마포어(Semaphore), 이벤트(Event) 1. Mutex 커널 오브젝트 기반 동기화 WaitForSingleObject(hMutex, INFINITE); // 임계영역의 시작 // ... // 임계영역의 끝 ReleaseMutex(hMutex); Mutex는 소유 - non-signaled 상태 / 소유 x - signaled 상태 WaitForSingleObject() 호출 결과는 2가지- 호출 후 블로킹 상태: Mutex 오브젝트가 다른 쓰레드에게 소유되어서 현재 non-signaled 상태에 놓여있는 상황- 호출 후 반환된 상태: Mutex 오브젝트의 소유가 해제되었거나 소유되지 않아서 signaled 상태에 놓여있는 상황 Mutex는 WaitForSingleObject() 가 반환될 때, 자동으로 non-signaled 상태가 되는 au.. 더보기 커널 오브젝트와 핸들 Windows 운영체제는 프로세스, 쓰레드 혹은 파일과 같은 리소스들을 원활히 관리하기 위해 필요한 정보를 저장해야 한다. 이때 데이터를 저장하는 메모리 블록을 가리켜 커널 오브젝트라 한다. 프로그래머는 직접 커널 오브젝트를 조작할 수 없다.그러나 MS에서 제공해 주는 시스템 함수를 이용하면 간접적 조작은 가능하다. Windows는 커널 오브젝트를 생성할 때마다 핸들이라는 정수값을 하나씩 부여한다. 이 정수값만 알 수 있다면, 커널 오브젝트를 지시하는 것은 쉬운 일이 된다. 쓰레드의 종료 시점을 알기 위해서는 커널 오브젝트의 상태를 알아야 한다. 커널 오브젝트에는 두 가지 상태(state)가 있다.- 종료된 상태 : signaled 상태 - TRUE- 종료되지 않은 상태 : non-signaled 상태 .. 더보기 파일에 대한 오해 - 바이너리 모드 오픈, 텍스트 모드 오픈 그 어떠한 운영체제도 파일을 '텍스트 파일'과 '바이너리 파일'로 나누어서 구분 짓지 않는다. 운영체제 관점에서 파일은 단순히 파일일 뿐. 그러나 일반 프로그램 사용자 관점에서는 텍스트 파일과 바이너리 파일을 구분 짓는다.파일에 텍스트 데이터가 저장이 되어 있어서 노트패드와 같은 텍스트 편집기로 읽을 수 있는 파일들을 텍스트 파일이라 하고, 그 이외의 파일들을 바이너피 파일이라 한다. 프로그램을 개발하는 이들은 운영체제의 관점에서, 컴퓨터 사용자 관점에서 해석해야 할 때가 있다. 운영체제 관점에서는 파일에 접근할 때, 텍스트 입출력 방식으로 접근할 것인지, 아니면 바이너리 입출력 방식으로 접근할 것인지를 구분 짓도록 하고 있다. 그것이 바로 '텍스트 모드 오픈'과 '바이너리 모드 오픈'의 차이점이다. 텍.. 더보기 feof 함수 파일에 저장된 데이터를 하나도 읽지 않은 상태에서는 파일 포인터가 맨 앞에 존재파일에 저장된 모든 데이터를 읽은 뒤에는 맨 마지막으로 파일 포인터가 이동 feof 함수는 파일의 끝(EOF)에 도달했을 때 0이 아닌 값을 반환 좀 더 정확히 하자면,더 이상 읽을 데이터가 하나도 남아있지 않은 상황에서 데이터를 읽으려 했다면 0이 아닌 값을 반환. 더보기 fgets와 gets의 차이점? fgets와 gets의 차이점? 일단, 이 둘은 Enter 키의 입력까지 읽어 들인다.단, fgets는 Enter 키의 입력까지를 문자열로 간주하기 때문에 그 뒤에 널 문자를 추가gets는 Enter 키를 제외하고 그 위치에 널 문자를 삽입 더보기 fgetc 함수의 4바이트 변환 int ch; ch = fgetc(fp); fgetc가 반환하는 자료형은 char가 아닌 int형.fgetc는 파일에서 문자 하나를 읽을 때 사용한다.왜 4바이트의 int형이 필요할까? 일단, fgetc의 4바이트 변환에 대해서 알아보자. 모든 문자는 우리 눈에 문자로 보일 뿐 컴퓨터에겐 그저 비트로 표현된 바이트일 뿐이다.만약에 01010010 이라는 문자를 읽었다면fgetc는 이것의 앞 3바이트 00000000 00000000 00000000 을 붙인다.즉, 00000000 00000000 00000000 01010010 이 되는 것. 이렇게 하는 이유는 무엇일까??그것은 바로 EOF를 표현하기 위해서다.EOF 는 -1인데 이것은 비트로 표현하면 11111111 11111111 11111111 111.. 더보기 scanf / gets / getchar C 프로그래밍 파워 업그레이드 - 윤성우 참조. 프로젝트 틀을 만드는 중 gets로 문자열을 받을 때 에러가 생겼다. 이미 한번 아는 문제라 쉽게 해결했지만 머리 속에 내가 정리가 되지 않았구나 하는 생각이 들어서 블로깅을 해본다. 문장은 문자열일까? - ex: Good morning? 단어는 문자열일까? - ex: Good 일반적인 관점에서는 모두 문자열이다.그렇기 때문에 "문자열"을 입력 받는다는 표현은 애매한 표현이다. C언어의 "문자열"을 입력 받는 대표적인 함수에는 scanf(), gets()가 있다.이 둘의 차이는 무엇일까? 그것은 문장과 단어의 차이다.문장은 공백이 포함된다. 이 때 공백에는 띄어쓰기, 탭, 개행이 포함된다.단어는 공백이 포함되지 않는다. scanf는 단어를 받는 함수이다.만.. 더보기 오픈리더십 - 쉘린 리 이 책은 아직까지 많은 기업이 쓰는 "통제의 전략"에서 오픈을 즉, "개방의 전략"을 설명하는 책이다. 중요한 것은, 개방이라고 해서 모든 걸 개방하는 것이 아니라 어디까지 개방해야 하는가도 생각해야 한다고 이야기 한다. 책을 읽으면서 중간 중간에 요약을 트윗을 했다. 열린 의사 결정에는 중앙집중형 / 민주형 / 합의형 / 분산형 의사결정이 있는데 무엇이 더 좋다기보다는 상황에 따라 적절하게 선택해야 한다. 모질라와 시스코는 분산형 의사결정을 한 기업 오픈 리더는 조직의 촉매역할을 하는 일원으로서 진정성과 투명성이 필요. 소셜 테크놀로지(블로그,트위터)를 이용할 줄 앎. 현실적 낙관주의자(가장 좋은 유형), 걱정 많은 회의론자, 조심스러운 실험주의자, 투명한 전도사로 나눌 수 있음. 오픈 리더는 어떻게 .. 더보기 거의 모든 IT의 역사 - 정지훈 사실 나는 이 책을 예전에 한번 읽어봤다. 전산학을 하는 사람으로서 IT의 흐름을 알아야 할 필요가 있다고 생각했기 때문에. 그래서 다시 읽을 때는 소셜이라는 단어가 유행이 되는 시기부터 다시 봐 보았다. 읽으면서 다음과 같은 흐름을 그릴 수 있었다. IBM -> PC(윈텔) -> 브라우저 전쟁(넷스케이프 vs 마이크로소프트) -> 인터넷 - 검색포탈 Yahoo / 검색엔진 Google -> 스마트폰 혁명(애플 vs 구글) -> SNS(트위터, 페이스북) (물론 중간에 PC 시대를 이끈 HP, 델, 그리고 오라클 등은 생략했지만.) 현재까지의 IT 흐름을 이해하기 위해 좋은 책이라고 생각한다. 우리가 디테일한 부분까지는 알 필요야 없겠지만, 최소한 어떤 시기에 어떤 회사가 이런 제품으로 업계를 이끌었다는.. 더보기 아이패드 혁명 스마트폰으로 시작된 모바일 혁명. 그 흐름은 이제 아이패드로 흐른다. 아이패드라는 기기는 카테고리를 분류할 수 없다. 태블릿PC? 넷북의 다른 모습? 스마트폰이 커진 모습?아니다. 그저 아이패드일뿐이다. 그것도 새로운 미디어로서의 아이패드. 이 아이패드는 과연 우리에게 어떠한 영향을 미칠까? 우리의 라이프 스타일을 바꿀 것이고 신문, 잡지부터 도서, 게임, 교육, 비즈니스, 의료까지.우리의 모든 삶의 부분이 아이패드에 의해 영향을 받을 것이다. '아이패드 혁명'은 이런 아이패드의 Effect를 보여주는 책이다.2010년도에 출판되어 새로운 미디어로서의 아이패드 그리고 애플식 비즈니스 생태계 및 사용자 경험에 대해 말하는 책이다. 미국과 우리나라의 앱 시장이 다르기 때문에 그 영향이 우리한테까지 그렇게 혁.. 더보기 이전 1 2 3 다음