Home
Justnote
Cancel

Philosophers ④ 구현 과정 (Bonus part)

세마포어를 사용하는 과제 방법 구상 프로세스, 세마포어 관련 개념 및 함수 숙지 세마포어로 임계구역을 보호 모니터링을 위한 별도의 스레드/프로세스 설정 구현 순서 인자 파싱 초기화 프로세스 생성 자원 해제 구현 방법 순서도 문제 해결 방법 Bonus 파트는 mandatory와는 조금 다르게 두 ...

Philosophers ③ 구현 과정 (Mandatory part)

뮤텍스를 사용하는 과제 방법 구상 스레드, 뮤텍스 관련 개념 및 함수 숙지 시간 관련 함수 사용 방법 숙지 명령행 인자를 구조체에 저장 교착 상태와 기아 상태를 어떻게 해결할 방법 뮤텍스로 임계구역을 보호 어떤 변수를 보호해야하는가? → reader, writer가 동시에 존재할 수 있는...

macOS 업데이트 이후 발생하는 xcrun error

Issue macOS Ventura로 업데이트를 한 뒤 git을 실행하니 아래와 같은 오류 메시지가 출력됐다. xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTo...

Encryption과 Encoding의 차이점

Encryption (암호화) 평문을 암호문으로 변환하는 과정 평문 (plaintext) : 읽을 수 있는 데이터 암호문 (ciphertext) : 읽을 수 없는 데이터 기본적으로 데이터를 안전하게 보관하기 위해 사용된다. 반대 개념은 복호화(decryption) 사용자...

[C언어] int형 배열의 길이 확인

개요 이번 주에 42서울 라피신 rush01 평가 봉사를 하면서 int형 배열의 길이를 while(arr != '\0')로 확인할 경우 -fsanitize=address -g 로 옵션을 지정하여 컴파일하면 buffer-overflow가 발생할 수 있다는 사실을 알게됐다. 원인 문자열의 경우 끝을 알려주는 종결자(terminator, sentine...

[C언어] 메모리 관련 함수 (할당/해제)

메모리 할당 malloc 함수 원형 #include <stdlib.h> void * malloc(size_t size); 설명 size 바이트의 메모리를 할당한다. 리턴값 성공 시 : 할당된 메모리에 대한 포인터 에러...

[C언어] 파일 입출력 함수

fopen 함수 원형 #include <stdio.h> FILE *fopen(const char * restrict path, const char * restrict mode); 설명 path에 담긴 문자열을 이름으로 갖는 파일을 열어서 스트림에 연결시킨다. ...

Line Feed (LF)와 Carriage Return (CR)의 차이점

의미 Line Feed (LF) \n ASCII 코드 10번 커서를 줄의 시작 위치로 옮기지 않고 다음 줄로 넘긴다. UNIX 계열 시스템에서는 new line으로 불린다. Carriage Return (CR) \r ASCII 코드 13번 커서를 다음 줄로 넘기지 않고 현재 줄의 시작 위치로 옮긴다. 기타 End of Line (E...

Philosophers ② 배경 지식

식사하는 철학자들 문제 (Dining philosophers problem) 개요 철학자 5명이 원탁에 앉아있고, 각자의 앞에는 스파게티가 있고 양옆에 포크가 하나씩 있다. 그리고 각각의 철학자는 다른 철학자에게 말을 할 수 없다. 이때 철학자가 스파게티를 먹기 위해서는 양 옆의 포크를 동시에 들어야 한다. 참고 고려 사항 Data ...

네트워크 - 02. Application Layer

Computer Networking: A Top-Down Approach (7th Edition)를 정리한 글입니다. 앞으로의 챕터들에서는 그림과 같이 애플리케이션 계층부터 아래 방향으로 알아볼 것이다. 이 장에서는 다음 내용을 공부할 것이다. 네트워크 애플리케이션의 개념과 구현하는 방법 주요 애플리케이션 계층 개념 웹, ...