728x90
반응형

컴퓨터(Computer Science) 205

데이터링크(Data Link Layer) 계층에 관한 필수 지식

데이터 링크에 배웠다면 대답할 수 있는 지식에 대해서 알아보자 Data Link Layer 게임 서버 프로그래밍이란 책에 좋은 비유가 있길래 가져왔다. 각 단말기는 고유한 주소를 갖습니다. 단말기는 데이터를 프레임(frame)이라는 단위로 주고받는다. **여기서 단말기는 집이 되겠다. **마을은 LAN를 형성한 것으로 보면 되겠다. **편지는 Data가 되겠다. 여러 집으로 구성된 작은 마을이 있다고 가정하자. 각 집에는 주소가 있다. 어떤 집에서 편지를 보내고 싶으면, 편지를 봉투에 넣고 수신자 주소를 기재해야한다. 그냥 편지를 봉투 없이 우체통에 넣으면 그 편지는 쓸모도 없고 전달되지도 못한다. 주소를 적은 편지 봉투를 우체통에 넣었더라도 주소가 같은 집이 두 곳 있다거나 하는 오류가 있으면 당연히 ..

물리적계층(Physical Layer)에 관한 필수 지식

21.11.05 내용 업데이트 물리적 계층을 배웠다면 대답할 수 있어야 하는 지식들에 대해서 알아보자 (전기적, 전자적 지식 보단 컴퓨터과학적 지식에 집중해서..) Physical Layer의 목적과 역할 -상위 계층에 대해서 서비스와 인터페이스 제공( Data Link) -실질적으로 데이터를 송신하는 계층, 통신채널을 통해 raw bits들을 전송한다. (다른 곳에서는 실제로 데이터를 전송하는 것이 아님. 논리적(logical) 전송이라고 할 수 있다.) -실제로 호스트 간의 물리적 연결을 책임지는 것이다.(유/무선) Circuit Switching(회선 교환)의 특징 -데이터를 전송하기 전에 경로가 연결되어 있어야 한다.(Connection setup) -때문에 경로가 설정되면 congestion의 ..

세마포어,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..

Connection-Oriented & Connectionless Protocol& Service, 연결형과 비연결형 서비스

www.youtube.com/watch?v=c1uWidYnL2Y 위의 영상을 바탕으로 설명하겠다. 각 계층은 바로 위 계층에 연결형과 비연결형의 두 가지 유형의 서비스를 제공할 수 있다. + 프로토콜도 마찬가지로 비슷하다. 우선 서비스에 관해서 설명하고 그 다음 프로토콜을 알아보자 연결형 서비스는 전화망을 모델로 많이 잡는다. 전화를 하기 위해서 해야할 작업이 무엇이 있을까? 서비스 사용자는 연결을 설정하고 그 연결을 사용한 후 연결을 해제한다. 즉 연결이 마치 긴 관이 작동하는 것 같다. 송신측은 끝에서 개체를 밀어 넣고 수신 측은 다른 쪽에서 전송되는 순서대로 수신한다. ** 연결을 설정하고 나서야 통신이 가능하다. 비연결형 서비스는 우편망 서비스와 비슷하다고 한다. 각 편지는 목적지를 가지고 있고 ..

IPv4와 IPv6의 차이점 무엇일까?

www.youtube.com/watch?v=ThdO9beHhpA 위 영상을 기반으로 설명한다. 영어라 알아먹기 힘들어서 내가 정리한다 ㅎ 우선 IP에 대해서 알아보아야 한다. IP란 Internet Protocol로 쉽게 말해서 약속이다. Internet을 사용할 때 지켜야만 하는 약속! 근데 우리는 보통 IP를 IP 주소라고 생각하고 있고 실제로도 그렇게 더 많이 쓴다. IP주소는 숫자로 구성되어 있으며 네트워크 상에서 장비를 구분할 수 있게 해준다. 그렇기에 장비들간에 커뮤니케이션이 일어나기 위해선 IP 주소를 가져야만 한다. 위에서 가르킨 IP 주소는 2가지로 볼 수 있다. 1. 네트워크 주소 2. 호스트 주소 그리고 주소 타입에는 2가지가 있다. IPv4, IPv6 **물론 우리는 아직 IPv4를..

Domain Name System, DNS란 무엇일까?

www.youtube.com/watch?v=mpQZVYPuDGU 위의 영상을 기반으로 설명한다. 최초 2020.11.27 업데이트 2022.09.07 우선 DNS라는 것은 (Domain Name System)이라는 것이다. 엥? 그게 뭐냐고? 뭔지 알려면 사람과 컴퓨터의 차이를 알아봐야 한다. 컴퓨터는 이름이 없다. 아니 이름이 숫자다. 사람은 숫자가 아니라 문자를 이름으로 갖는다. **사실 컴퓨터가 문자를 이름으로 갖는 것처럼 보이지만 사실 문자도 숫자로 해석해서 알아듣는다. **해석하는 과정을 name resolution이라고 한다. 알았지? ??그래서 DNS가 뭐냐고?? DNS는 이름을 숫자로 매칭시켜주는 시스템이다. 정확하게 말하면 도메인 이름을 IP 주소로 바꿔준다. **일반적으로 우리가 웹 브..

728x90
반응형