System Programming
-
시스템 프로그래밍 실습 14주차 : Synchronization 2System Programming/Ubuntu Linux 2021. 11. 24. 22:52
시스템 프로그래밍 실습 14주차 : Synchronization 2 [목차] - Deadlock - Deadlock Prevention 1. Deadlock이란? : 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황 / 교착 상태라고도 한다 - P1과 P2가 리소스 A, B 둘 다를 얻어야 한다고 가정할 때, t1에 P1이 리소를 A를 얻고 P2가 리소스 B를 얻었다면 t2때 P1은 리소스 B를, P2는 리소스 A를 기다리게 됨. 하지만 서로 원하는 리소스가 상대방에게 할당되어 있기 때문에 이 두 프로세스는 무한정 기다리게 됨. Deadlock 발생 조건 1) Mutal Exclusion (상호배제) : 한 번에 프로세스 하나만 해당 자원을 사용할 수 있..
-
시스템 프로그래밍 실습 13주차 : Synchronization 1System Programming/Ubuntu Linux 2021. 11. 21. 16:41
시스템 프로그래밍 실습 13주차 : Synchronization 1 먼저, 11주차 복습! https://asidefine.tistory.com/123 시스템 프로그래밍 실습 11주차 : Pthreads [목차] - Process vs Threads - Pthreads 관련 API 종류 - Pthreads의 데이터 타입과 속성 - Pthreads 다루기 (메소드) - Creating Threads - 쓰레드를 생성한다 - Terminating Threads - 쓰레드를 종료한다.. asidefine.tistory.com - Mutex API : mutex 는 여러 개의 쓰레드가 공유하는 데이터를 보호하기 위해서 사용되는 도구로써, 보호하고자 하는 데이터를 다루는 코드영역을 단지 '한번에 하나의 쓰레드만'..
-
시스템 프로그래밍 실습 12주차 : Concurrent ProgrammingSystem Programming/Ubuntu Linux 2021. 11. 15. 17:53
시스템 프로그래밍 실습 12주차 : Concurrent Programming 먼저 10주차 Socket 내용 복습! https://asidefine.tistory.com/109 시스템 프로그래밍 실습 10주차 : Sockets 시스템 프로그래밍 실습 10주차 : Sockets [목차] - Internet Connections - Client-Server Model Client Server - Socket TCP / UDP socket 함수들 ( socket(), connect(), bind(), listen(), accept().. asidefine.tistory.com [목차] - Process-based - Thread-based - Event-based(I/O multiplexing) 네트워크에서 ..
-
시스템 프로그래밍 실습 11주차 : PthreadsSystem Programming/Ubuntu Linux 2021. 11. 8. 09:45
[목차] - Process vs Threads - Pthreads 관련 API 종류 - Pthreads의 데이터 타입과 속성 - Pthreads 다루기 (메소드) - Creating Threads - 쓰레드를 생성한다 - Terminating Threads - 쓰레드를 종료한다 - Joining Threads - Detaching Threads - 쓰레드를 메인 쓰레드에서 분리시킨다 1. Process vs Threads - Process는 한 process에 한 주소 공간(address space) -> 각각의 process가 자신만의 data(전역 변수), stack, heap을 가지고 있다 - Threads는 address space를 공유할 수 있다 -> data와 heap 영역은 같은 주소 공간..
-
시스템 프로그래밍 실습 10주차 : SocketsSystem Programming/Ubuntu Linux 2021. 11. 1. 12:10
시스템 프로그래밍 실습 10주차 : Sockets [목차] - Internet Connections - Client-Server Model Client Server - Socket TCP / UDP socket 함수들 ( socket(), connect(), bind(), listen(), accept() ) - 예제: Echo Client & Echo Server Internet Connections +) 꼭 먼저 알아야 할 기본! => 인터넷 등의 네트워크에서 통신을 원할하게 하기 위해서 필요한 공통된 통신규약, 즉 프로토콜을 지정하였다! - ISO(International Standardization Organiztion)의 OSI(Open System Interconnection)는 네트워크 계층..
-
Shell 만들기 참고할 것System Programming/Ubuntu Linux 2021. 10. 28. 13:30
명령어 구현 1. rm 명령어 구현 https://github.com/yadu007/Basic-Unix-Commands-Implementation/blob/master/rm.c GitHub - yadu007/Basic-Unix-Commands-Implementation: Implementation of some Linux commands using system callls Implementation of some Linux commands using system callls - GitHub - yadu007/Basic-Unix-Commands-Implementation: Implementation of some Linux commands using system callls github.com 2. mv ..
-
시스템 프로그래밍 실습 9주차 : System V IPCSystem Programming/Ubuntu Linux 2021. 10. 22. 20:44
시스템 프로그래밍 실습 9주차 : System V IPC [목차] - System V IPC interface - Message Queue - Shared Memory System V IPC interface 시스템 V IPC - 시스템 V 계열 유닉스에서 개발해 제공하는 프로세스 간 통신방법 - 메시지 큐, 공유 메모리, 세마포어 공통 요소 - 시스템 V IPC를 사용하기 위해서는 IPC 객체를 생성해야 함 - IPC 객체를 생성하기 위해 공통적으로 사용하는 기본 요소는 키와 식별자 => IPC 객체를 생성하면 다음과 같은 IPC 공통 구조체가 정의된다 - ftok() : 키 생성 함수! #include #include key_t ftok(const char *pathname, int proj_id);..
-
시스템 프로그래밍 실습 8주차 : IPCSystem Programming/Ubuntu Linux 2021. 10. 17. 14:04
시스템 프로그래밍 실습 8주차 : IPC [목차] - IPC - Open Files in Kernel - I/O Redirection - Pipes - Anonymous Pipe - Named Pipe (FIFOs) IPC란? IPC = Inter Process Communication! - 프로세스들끼리 데이터를 주고 받는 기능 - IPC의 방법들 1. signals (7주차) 2. I/O Directions (3주차, 8주차) 3. Anonymous Pipe (3주차, 8주차) 4. Named Pipe (FIFO) (3주차, 8주차) 5. Shared Memory, Message Queue, etc. https://doitnow-man.tistory.com/110 [프로세스간 통신] IPC(inter..