Skip to content

kim-minkyoung/Unix-Advanced-Programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unix Advanced Programming 과제

이 저장소에는 멀티스레드 및 멀티유저 프로그래밍을 중심으로 한 과제 HW2부터 HW5까지가 포함되어 있습니다. 과제는 스레드 관리, 공유 메모리, 세마포어와 뮤텍스를 사용한 동기화, 프로세스 간 실시간 통신 등을 다룹니다.

HW2: 프로세스 및 스레드 관리

파일

  • read.c: 공유 메모리 또는 파일에서 데이터를 읽는 코드가 포함되어 있습니다.
  • write.c: 공유 메모리 또는 파일에 데이터를 쓰는 코드가 포함되어 있습니다.

구조 및 워크플로우

HW2는 C에서 스레드와 프로세스를 생성하고 관리하는 방법을 보여줍니다. 포함된 내용은:

  • 스레드 생성: 여러 스레드를 생성하고 관리하는 방법.
  • 프로세스 생성: fork()를 사용하여 자식 프로세스를 생성하고 관리하는 방법.

사용 방법

HW2를 컴파일하고 실행하려면:

gcc -o hw2 202155532.c read.c write.c -lpthread
./hw2

HW3: 스레드 동기화 및 공유 메모리

파일

  • chatHeader.h: 공유 데이터 구조체와 함수 프로토타입을 포함한 헤더 파일입니다.
  • chatThreadSync.c: 뮤텍스를 사용하여 스레드와 공유 메모리를 통해 채팅 시스템을 구현합니다.

구조 및 워크플로우

HW3는 HW2를 기반으로 스레드 동기화와 공유 메모리를 추가합니다. 포함된 내용은:

  • 공유 메모리: 프로세스 간 통신을 허용하는 공유 메모리 사용.
  • 뮤텍스: 공유 자원에 대한 접근을 동기화하기 위해 뮤텍스 사용.
  • 스레드 관리: 실시간 채팅 기능을 처리하기 위해 여러 스레드를 관리합니다.

사용 방법

HW3를 컴파일하고 실행하려면:

gcc -o hw3 chatThreadSync.c -lpthread -lcurses
./hw3 <UserID>

HW4: 세마포어 동기화 및 신호 처리

파일

  • main.c: 세마포어 동기화 및 신호 처리를 포함한 채팅 시스템 구현.

구조 및 워크플로우

HW4는 HW3에 세마포어 동기화 및 신호 처리를 추가합니다. 포함된 내용은:

  • 공유 메모리: 세마포어를 사용하여 공유 자원에 대한 접근을 관리합니다.
  • 뮤텍스: 종료 신호를 처리하여 자원을 정리하고 정상적으로 종료합니다.
  • 스레드 관리: 개선된 동기화와 함께 스레드를 생성하고 관리합니다.

Usage

HW4를 컴파일하고 실행하려면:

gcc -o hw4 main.c -lpthread -lcurses -lrt
./hw4 <UserID>

HW5: 동시 예금 및 출금 동기화

파일

  • 202155526-kim-minkyoung.c: 스레드, 뮤텍스, 조건 변수를 사용하여 동시 예금 및 출금 작업을 시뮬레이션합니다.

구조 및 워크플로우

HW5는 동시 예금 및 출금 시나리오에서 동기화에 중점을 둡니다. 포함된 내용은:

  • 동시성: 동시 예금 및 출금 작업 관리.
  • 뮤텍스 및 조건 변수: 공유 자원을 보호하기 위해 뮤텍스 사용 및 상태 변화를 신호하기 위한 조건 변수 사용.
  • 무작위 작업: 무작위 예금 및 출금 금액 시뮬레이션.

Usage

HW5를 컴파일하고 실행하려면:

gcc -o hw5 202155526-kim-minkyoung.c -lpthread
./hw5

About

PNU 2024 unixAdvancedProgramming assignments - thread, shared memory, semaphore, mutex

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published