본문 바로가기

C2

c로 식사하는 철학자 문제 풀기 #프로세스 #스레드 #뮤텍스 #세마포어 #데드락 #임계영역 5명의 철학자가 원탁에 앉아있습니다. 철학자들은 다음 작업을 반복합니다. 포크 들기 -> 식사하기 -> 포크 내려놓기 -> 잠자기 -> 생각하기 철학자는 포크 2개로 식사하고 원탁에 포크는 철학자 수만큼 존재합니다. 이때 포크 위치는 1. 철학자 양옆 2. 원탁 가운데 바구니 각 두가지 경우를 가정해 프로그램을 작성합니다. 1. 철학자 구현하기 철학자 5명은 각자 작업을 동시에 반복합니다. 작업을 동시에 실행하기위해 프로세스 또는 스레드를 구현합니다. 프로세스 위키백과에서 프로세스는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램이라고 정의했습니다. 또한 컴퓨터 프로그램은 위키백과에서 명령어들의 모음이라고 정의했습니다. 종합해보면 컴퓨터에서 .. 2021. 7. 27.
C언어 데이터 타입의 크기 C언어 데이터 타입의 크기는 컴파일러의 옵션에 따라 달라질 수 있습니다. 요즘 컴퓨터는 대부분 64bit 인데, 컴파일러의 기본 세팅은 32bit에 맞춰서 컴파일됩니다. 그게 가능한 이유는, 64bit에서 32bit 하위호환이 가능하기 때문입니다. 대체적으로 우리가 사용하는 컴퓨터에는 인텔이나 AMD의 cpu를 사용하는데, 이것들을 x86 아키텍쳐라고하고, x86아키텍쳐의 64bit 판이 x86_64 입니다. x86_64 아키텍쳐는 하위호환이 가능해서, x86_64 아키텍쳐에 64bit 운영체제여도, 32bit 연산이 가능합니다. Type Size Range char 1 byte [-127, +127] signed char 1 byte [-127, +127] unsigned char 1 byte [0, .. 2020. 11. 23.