728x90
반응형

컴퓨터(Computer Science)/시스템 프로그래밍(System Programming) 5

세마포어,Semaphores 그 쓰임과 예시

이번에는 세마포어에 대해서 알아보려고 한다. 추가 설명 [컴퓨터(Computer Science)/운영체제(Operation System)] - 동기화, 세마포 : Synchronization, Semaphores [운영체제] 영어 설명에는 1. They are the key ingredient in solving various producer/consumer problems where a buffer is being read and written at the same time. 2. A semaphore in Win32 may be locked at most n times, where n is specified when the semaphore is created. 이런 말이 있다. 무슨 말인고 허니 버..

뮤텍스,Mutex (Mutual Exclusion) 쓰임과 예시

docs.microsoft.com/en-us/windows/win32/sync/using-mutex-objects 위의 링크에 예시가 있다. 뮤텍스에 대해서 더 알아보자 MUTual EXclusion 의 줄임말이다. 하나의 스레드는 한 번에 오직 하나만의 뮤텍스를 가질 수 있다. 마치 이건 하나의 스레드만이 임계구역(critical section)에 들어가는 것과 비슷하다. 다시 말해서 서로 다른 프로세스에 있더라도 스레드 간에 상호 배제를 가능하게 해주는Kernel object이다. --임계영역에 대해서는 이 글에서 잘 설명했다. 위 글로 아래를 이해하면 되고 안되면 다시 맨 밑의 예를 보면서 이해하면 된다. ** 참고 예시를 comment와 함께 보는 것도 괜찮을듯

멀티스레드 환경에서의 동기화(Synchronization)

?? 동기화가 뭐지?? 동기화의 목적은 스레드와 프로세스를 조정하는 것이다. ?? 왜 조정하는데...?? 바로 Critical Section(single process; non kernel object)의 경우 때문이다. 뜻은 같은 자원을 접근하는 코드를 말한다. -> critical section은 반복적으로 동작하는 2개 이상의 스레드가 하나의 자원을 공유할 때 발생한다. ***Resource (자원)이란 Memory location이나 Data structure, file 등을 말한다. Critical Section에 대해 조금 더 알아보자 이 말의 뜻은 "같은 자원을 접근하는 코드"이다. 얘도 또한 Object가 존재한다. (Win32 API가 제공) 또한 오직 하나의 스레드만 critical s..

시스템 프로그래밍을 위한 기본 OS 지식

전 글에서는 시스템 프로그래밍을 하는 이유를 배웠다. 그렇다면 이제 프로그래밍을 할 때 알아야 하는 지식에는 무엇이 있을까? 사실 컴퓨터 구조 + 운영체제 만 알면 된다고 감히 말할 수 있다. **위의 두 분야에 대한 글도 써놓았다. 우선 오늘은 OS부터 알아보자 우선 OS란 무엇인지부터 알아보자 OS란 사용자의 편의성과 자원분배의 효율성을 위해 만들어진 소프트웨어라고 볼 수 있다. 자원분배의 효율성이란 하드웨어의 자원을 효율적으로 관리 + 사용자 간의 보안 유지 + 오류 관리를 말한다. 편의성이란 GUI같은 인터페이스 + Standard Library + 사용자가 하드웨어 자원 접근 용이를 말한다. ++ 다른 설명으로는 (참고) Operating systems provide a virtual machi..

시스템 프로그래밍을 배우는 이유

질문부터 해보겠다. 우선 시스템 프로그래밍을 왜 해야할까??? 취직이 잘되니까? ㅇㅋ 컴퓨터인의 소양이니까? ㅇㅋ 코딩 좀 하니까? ㅇㅋ 위의 말이 다 맞지만 진짜 시스템 프로그래밍을 배우는 이유는 우리가 프로그램을 만드는 과정을 알면 그 이유 또한 알게된다. 시작해보자 아래의 그림이 바로 Build Process이다. 우리가 무엇인가 만든다면 아래의 방식대로 짜게될 것이다. ** 여기서 초록색은 Development Tool을 말하고 ** 하얀색은 사용자의 정의에 따라 있기도 없기도 하다. 이제 이유를 알겠나...? "엥?? 모르겠는데? 내가 알고 있는 방법이랑 같은데??" 맞다. 우리는 이미 빌드 과정을 알고 있다. 하지만 우리는 그 활동을 시스템 위에서 하지 않는다. 우리가 하는 활동은 Applic..

728x90
반응형