→ Computer Science

🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 3. 실행, Context switch??🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 2. 프로세스의 구조??🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 1. 딥다이브 전 기초지식🧐 학습 계기이번에 스터디를 진행하면서 운영swift-library.tistory.com🧵 멀티스레드 프로세스많은 개발자들을 괴롭히고(?) 있는 스레드! 멀티 프로세싱은 Context switching을 통해서 os에서 관리한다. 하지만 각 프로세스 안에서도 Task관리... 해야겠지? 기존 전통적인 프로세스는 single-threaded process이였지만, 현대에 와서는 multithreaded process로 발전했다.A thread is a..
🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 2. 프로세스의 구조??🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 1. 딥다이브 전 기초지식🧐 학습 계기이번에 스터디를 진행하면서 운영체제-프로세스에 대해서 학습공유를 하게 되었다. 학습을 하다 보니 역swift-library.tistory.com🤔 그래서 프로세스를 어떻게 "실행, 관리" 할 수 있는 거지?물론 PCB(Process Control Block)의 존재를 알고 있기는 했다. 하지만 정확하게 PCB가 뭔지, 어떻게 작동하는지가 궁금했다.🛠️ Kernel바로 커널이 등장했다. Activity Monitor를 보면 있는 그 친구...! 스레드상으로만 보면 압도적이다. (크롬 때문일까...?)User mode, Kernel ..
🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 1. 딥다이브 전 기초지식🧐 학습 계기이번에 스터디를 진행하면서 운영체제-프로세스에 대해서 학습공유를 하게 되었다. 학습을 하다 보니 역시 파도파도 끝이 없다. 이 부분에서 학습공유에 정리하기 전에 내가 학습swift-library.tistory.com🧐 프로세스의 구조?흔히 구글에 프로세스의 구조라고 치면 너~무나도 유명한 Stack, Heap, Data, Text 네 가지 층으로 구성된 자료들을 흔히 확인할 수 있다.나도 프로그램이 실행되면 이렇게 Stack, Heap, Data, Text(Code) 뚝딱! 메모리에 할당되고 처리가 되는가보군? 정도로 넘어갔었는데 이번 기회에 조금 더 깊이 들어가 보고 싶었다. 공룡책(Operating Sys..
🧐 학습 계기이번에 스터디를 진행하면서 운영체제-프로세스에 대해서 학습공유를 하게 되었다. 학습을 하다 보니 역시 파도파도 끝이 없다. 이 부분에서 학습공유에 정리하기 전에 내가 학습했던 과정들을 상세하게 기록하고 싶어서 이렇게 블로그 글을 작성하게 되었다. (너무 구구절절 발표할순 없으니까...)🐥 프로세스에 대한 기초 지식프로세스라고 하면 당연하게 연결되는 것이 프로그램과 프로세스의 차이이다.📄 프로그램의 정의[컴퓨터] 어떤 문제를 해결하기 위해 컴퓨터에게 주어지는 처리 방법과 순서를 기술한 일련의 명령문의 집합체. -옥스퍼드 사전사전적 의미 그대로이다. 디스크에 저장된 처리 방법과 순서를 명령한 코드 뭉치 파일이라고 생각하면 될 것 같다.프로그램의 범위...?하지만 여기서 또 의문점이 생겼다...
RTMP (Real Time Messaging Protocol)은 한줄요약 하자면 어드비에서 만든 실시간 TCP 기반의 메세지 규약, 주로 오디오와 비디오 데이터 전송을 위한 프로토콜이다. 2002년 Macromedia가 개발한 RTMP는 Flash기반의 오디오, 비디오 스트리밍을 지원하기 위해 나왔다고 한다. 2009년에 드디어 Adobe는 RTMP의 스팩을 공개하여 다른 곳에서도 사용 가능하게 되었다고 한다.🤔 왜 Message 일까?단순한 데이터 전송이 아닌 데이터 교환이나 메세지 전송을 주요 기능으로 하기 때문이다. RTMP는 오디오, 비디오, 텍스트 뿐만이 아니라 메타데이터와 제어 메세지도 전송하기 때문이다. 다양한 메세지를 수용할 수 있기 때문에 게임 스트리밍, 실시간 방송, 화상회의, 다중..
TCPTCP(Transmission Control Protocol)은 데이터를 통신하는 약속이라고 할 수 있다. 자세한 문서는 아래에 있지만... 다 읽어보기가 너무 겁난다... RFC 9293: Transmission Control Protocol (TCP)This document specifies the Transmission Control Protocol (TCP). TCP is an important transport-layer protocol in the Internet protocol stack, and it has continuously evolved over decades of use and growth of the Internet. Over this time, a number of cha..
💊 소켓이란?소켓은 네트워크 상의 두 장치 간에 데이터 전송 통로를 마련하는 인터페이스이다. 이렇게 말하면 ?? 가 떠오를 수 있는데 소켓을 단순하게 말하면 문자열 데이터(패킷)을 주고받는 것이다. 소켓은 통신에 필요한 데이터를 보관하는 곳(파일)이라고도 볼 수 있다.  하지만 마구잡이로 보낼수 없으니 어떠한 구조로 보낼지 약속을 한다. 이것을 프로토콜이라고 하는데 소켓은 네트워크 통신에서 TCP와 UDP라는 두 가지 주요 프로토콜을 사용한다. TCP, UDP에 대해서 간단히 요약을 하자면... 연결, 비연결이라고 볼 수 있을 것 같다.TCP (Transmission Control Protocol)데이터 전송을 보장하는 연결 기반 프로토콜이다. 데이터의 순서를 보장하고 패킷 손실이 없기 때문에 데이터가..
정지문제 (Halting problem) 정지문제는 처음으로 증명된 판정불가능한 문제가 되었다고 한다. 정지문제를 간단하게 요약해보면 아래와 같다. 프로그램과 입력값이 주어졌을 때, 프로그램에 입력값을 넣고 실행한다면 프로그램이 계산을 끝내고 멈출지, 무한으로 계산할지 판정할수 있는가? 1936년에 앨런 튜링은 모든 입력값에 대해 정지문제를 풀 수 있는 일반적인 알고리즘은 존재하지 않는다는 것을 증명했다. 간단한 증명 귀류법을 사용하면 간단한데, 프로그램 a와 문자열 i입력으로 실행이 끝나면 true, 실행이 멈추지 않고 영원히 계산된다면 false가 결과값으로 나오는 halt(a, i)라는 알고리즘이 있다고 해보자. 이러한 완벽한 알고리즘을 가지고 아래의 함수를 구현했다고 한다면, 만약 trouble(..
Swift librarian
'→ Computer Science' 카테고리의 글 목록