본문 바로가기

반응형

이론

(81)
[이론]리눅스 프로그래밍 - 네트워크(TCP/IP, UDP) 네트워크에 대한 개론이론적인 부분은 다룬 적이 있어서 다음 글을 참고하기를 바란다.https://messy-developing-diary.tistory.com/168 IT 엔지니어를 위한 네트워크 입문CH 1 : 네트워크 시작하기프로토콜 : 네트워크 상의 통신에 필요한 규약 대표적으로 이더넷-TCP/IP 기반 프로토콜이 있음 물리적 측면 : 데이터 전송 매체, 신호 규약, 회선 규격 등 이더넷에서 널리messy-developing-diary.tistory.com TCP/IP와 UDP 통신에 대해서 보다 실전적인 부분을 다루고자 한다. 주요 주소 체계TCP/IP : MAC 주소(48 bit), IP 주소(IPv4 - 32bit, IPv6 - 128bit), 도메인 네임(서버나 단말을 구분하기 위한 문자열)..
[이론] 스레드(Thread)와 뮤텍스 스레드(Mutex Thread) 정의스레드(Thread) : 프로세스 내에서 실행되는 흐름의 단위를 말한다. 모든 프로그램은 하나 이상의 스레드를 가진다.멀티 프로세스와 다르게 멀티 스레드는 스레드 간 프로세스 내 메모리를 공유할 수 있다는 장점이 있다. => 별도의 IPC가 필요없어서 더 빠르고, 더 간단하다. 단, 여러 스레드 중 어느 스레드가 실행되는 지 알 수 없어서, 스레드 간 동기화가 필요하다. 이를 위한 스레드가 뮤텍스 스레드(Mutex Thread)이다. 뮤텍스 스레드는 임계 영역을 설정하여, 해당 영역에서는 context 스위칭이 일어나지 않도록 방지하는 기능을 포함한다. 스레드의 종류User-Level Thread : 커널 영역 상위 레벨에서 지원되며, 일반 라이브러리로 스레드 생성 및 관리, 동일한 메모리 영역..
[이론] 세마포어(Semaphore) 세마포어는 Edsger Wybe Dikstra가 고안한 두 개의 원자적 함수(=한 번 실행되면 중간에 멈출 수 없는 함수)로 조작되는 두 정적 변수를 의미한다. 공유 자원에 대한 접근을 제한하는 방법으로 사용된다. 식사하는 철학자들 문제(The Dining-Philosophers Problem) : 동시성과 교착 상태를 설명하는 문제 주어진 상황과 같이 5 명의 철학자들 앞에는 5 개의 스파게티가 있고, 스파게티 사이마다 포크가 있다. 철학자들은 서로 대화할 수 없다. 철학자가 스파게티를 먹기 위해서는 양 옆의 포크를 동시에 들어야 한다. 만약 모든 철학자들이 왼쪽 포크를 들고 오른 쪽 포크를 든다면, 모든 철학자들이 오른 쪽 포크를 들 수 없어서 스파게티를 먹지 못하는 교착 상태에 빠질 수 있다. 이러..
[이론]리눅스 프로그래밍 - 프로세스와 쓰레드 프로세스 : 실행 중인 프로그램 생성(new) : 프로세스가 생성됨 준비(ready) : CPU의 할당을 기달기고 있는 상태 실행(execute) : CPU에 할당되어 실행되고 있는 상태, 커널에게 시스템을 수행하게 할 수 있음 대기(sleeping) : 커널에 시스템 호출을 처리하기 위해 기다리는 상태 종료(terminated) : 프로세스 실행이 완료된 상태 PCB(Process Control Block)에 의해 관리된다.프로세스 확인 : ps프로세스 종료 : kill or killall(-9 : SIGKILL)시그널 : 소프트웨어적인 인터럽트, 하드웨어적인 시그널과 다르나 비슷한 면이 있다 signal(), pause()signa..
[이론] 리눅스 프로그래밍 - 입출력 함수 리눅스의 기본 구조와 파일 시스템디바이스, 디렉터리, named pipe, socket 등이 파일로 취급된다.리눅스 시스템은 파일 권한을 이용하여 보안 기능을 제공한다. (user-group-other) 응용 프로그램 - OS[커널(시스템 콜 인터페이스 - 프로세스 관리, 메모리 관리, 파일 시스템, 디바이스 제어(블럭 디바이스, 문자 디바이스, NIC 디바이스), 네트워크)] - 하드웨어(CPU, RAM, NIC etc)단일 유닉스 격을 준수유저 모드와 커널 모드로 동작된다. 시스템 자원에 대한 접근이 필요한 경우 잠시 커널 모드로 전환한 후, 이후 다시 유저 모드로 전환된다. 리눅스 가상 파일 시스템 : 다양한 파일 시스템들을 하나의 파일 시스템처럼 사용할 수 있도록 별도의 레이어를 구성 저수준 파..
vscode cmake 오류 해결 환경 변수가 많이 꼬여 있어서 오늘 한 번 정리를 했다.(정말 조심스러운 일이었다;;)vscode의 cmake를 사용하면서 두 가지 문제가 발생하였다. 하나는 cmake path를 인식하지 못해서 프로젝트 빌드를 못한다는 것, 두 번 째는경 변수가 많이 꼬여 있어서 오늘 한 번 정리를 했다. vscode의 cmake를 사용하면서 두 가지 문제가 발생하였다. 하나는 cmake path를 인식하지 못해서 프로젝트 빌드를 못한다는 것, 두 번 째는 cmake 내 빌드를 ninja로 하는데, 제대로 인식하지 못했다는 점이다. 해결 방법은 setting.json 파일에서 다음과 같은 내용을 추가해 주면 된다.(팔렛트 open -> preference:open user setting(json))"cmake.cma..
vim 사용(퍼옴) 안녕하세요. 리눅스에서 vi/vim을 사용하시는데 많이 불편하신가요? 옆 사람은 너무나 능숙하게 사용하는데.. 난 왜 이렇게 어렵기만한지..ㅎㅎ 여기 있는 기본 명령어만 알아도 훨씬 편하게 사용 하실수 있습니다. 각 명령어는 대/소문자를 구분하니, 이점 유념해 주세요. 하나씩 직접 해보시면서 많이 쓰시는 명령어 두세개만 익혀도 충분히 편리하게 작업 하실수 있습니다. 카테고리키기능삽입i커서 위치에 InsertI줄 맨 앞에서 Inserta커서 다음에 InsertA줄 맨 뒤에서 Inserto커서 아래로 한 줄 띄우고 InsertO커서 위로 한 줄 띄우고 Insert이동w단어 첫 글자 기준으로 다음으로 이동W공백 기준으로 다음(단어의 시작)으로 이동b단어 첫 글자 기준으로 이전으로 이동B공백 기준으로 이전으로 ..
IT 엔지니어를 위한 네트워크 입문 CH 1 : 네트워크 시작하기프로토콜 : 네트워크 상의 통신에 필요한 규약 대표적으로 이더넷-TCP/IP 기반 프로토콜이 있음 물리적 측면 : 데이터 전송 매체, 신호 규약, 회선 규격 등 이더넷에서 널리 사용됨 논리적 측면 : 장치 간 통신을 위한 규격, TCP/IP가 대표적 유래는 초기 느린 네트워크 속도를 이용하여 효율적으로 통신하는 것, 비트 기반 > 문자 기반 TCP/IP를 묶어서 프로토콜 스택이라 부름(별개의 계층에서 동작하는 프로토콜이지만, 워낙 하나로 묶여서 사용되어서...)그외에도 UDP, ICMP, ARP, HTTP 등 다양한 어플리케이션 레이어 프로토콜이 있음 이더넷(물리) - 네트워크 계층(IP, 목적지 탐색) - 전송 계층(TCP, 잘린 패킷의 조합) - 어..

반응형