42Seoul

    [42Seoul] Philosophers : 뮤텍스와 세마포어

    이번 과제는 Dining Philosophers Problems (철학자들의 만찬 문제)를 Mutex를 사용해 멀티스레드를 구현하는 문제이다. Dining Philosophers Problems 이란? 철학자들의 만찬문제는 n명의 철학자가 원형 테이블에 앉아있으며 양쪽에는 포크가 놓여져 있고 테이블의 중간에는 음식이 있다. 각 철학자는 양쪽의 포크를 모두 집어야만 음식을 먹을 수 있으며 일정시간 음식을 먹지 못하면 죽는다. 음식을 다 먹으면 포크를 내려놓고 생각을 시작하며 일정시간 생각이 끝나면 다시 포크를 들고 음식을 먹는다. 여기서 철학자는 process / thread 가 되며 포크는 공유자원이 된다. 이 문제는 교착 상태(Deadlock)을 잘 설명하는 예시이며 교착 상태가 발생할 수 있는 4가지..

    [42 Seoul] Minitalk : signal 함수로 IPC(Inter-Process Communication) 구현

    1. signal 이란 시그널(signal)은 software interrupt 로 프로세스 간의 비동기적 이벤트와 데이터를 공유, 전송할 수 있도록 운영체제에서 제공되는 IPC 중 하나이다. signal을 프로세스에 보내면 각 signal에 지정된 동작을 수행한다. 2. signal 함수 signal signal 함수는 에 정의되어 있으며 시그널을 받아 지정된 함수를 실행할 수 있다. signal(SIGINT, (void *)sig_handler); 아래는 signal의 종류이다. SIGHUP 터미널 연결이 끊어졌을 때 이 터미널과 연결된 세션 리더 또는 세션에 속한 모든 프로세스들에게 보내지는데 이 시그널을 받으면 종료 SIGINT 터미널에서 인터럽트 키를 눌렀을 때 보내지는데 이 시그널 받으면 종료..

    [42Seoul] Push_Swap : 정렬 알고리즘 구현

    1. 게임 규칙 이 게임은 a와 b라는 이름의 두 개의 스택으로 이루어져 있고 게임은 다음과 같이 시작한다. a는 서로 중복되지 않는 음수 혹은 양수인 난수들을 포함한다. b는 비어있다. 이 게임의 목표는 스택 a에 오름차순으로 수를 정렬하는 것이다. 정렬을 위해 다음 명령어들을 수행할 수 있다. 명령어 기능 sa : swap a 스택 a의 가장 위에 있는 두 원소의 위치를 서로 바꾼다. sb : swap b 스택 b의 가장 위에 있는 두 원소의 위치를 서로 바꾼다. ss : sa + sb sa와 sb를 동시에 실행한다. 명령어 기능 pa : push a 스택 b에서 가장 위(탑)에 있는 원소를 가져와서, 스택 a의 맨 위(탑)에 넣는다. 스택 b가 비어 있으면 아무 것도 하지 않는다. pb : push..

    [42Seoul] ft_server (Docker + LEMP)

    Ft_server 요약: 이번 프로젝트의 과제는 시스템 관리입니다. 여러분은 도커를 발견하고 여러분의 첫 번째 웹 서버를 구축할 것입니다. Introduction 이번 주제는 여러분에게 시스템 관리에 대해서 소개하려 합니다. 스크립트를 사용하여 업무를 자동화하는 것이 중요하다는 것을 깨닫게 될 것입니다. 이를 위해, 여러분은 "도커"라는 기술을 발견하여 그것을 완전한 웹 서버를 설치하는 데 사용할 것입니다. 이 서버는 여러 서비스를 실행할 것입니다: Wordpress, phpMyAdmin, 그리고 SQL database. General instructions 서버 구성에 필요한 모든 파일을 srcs 폴더 안에 넣어놔야 합니다. 도커파일은 저장소의 루트에 있어야 합니다. 그것은 여러분의 컨테이너를 만들 것..

    [42Seoul] ft_printf - 나의 printf 구현하기

    Intorduction 이 프로젝트는 꽤 간단합니다. 여러분은 printf 함수를 다시 구현할 것입니다. 희망컨대 여러분들은 cheating의 두려움 없이 추후 프로젝트에서 ft_printf를 재사용할 수 있습니다. Mandatory part Program name libftprintf.a Turn in files *.c, /.c, *.h, /.h, Makefile Makefile all, clean, fclean, re, bonus External functs. malloc, free, write, va_start, va_arg, va_copy, va_end Libft authorized yes Description 실제 printf의 모방 함수인 ft_printf가 포함된 라이브러리를 작성하십시오 f..

    [42Seoul] Netwhat - 네트워크 및 시스템 관리

    1. Introduction Netwaht은 네트워크에 대해 알게 되고 그것이 내부에서 작동하는 일들에 대해 배울 수 있게 해줄 것입니다. 이것은 여러분이 이미 생활 속에서 사용하고 있는 어떠한 것들이 어떻게 동작하는지 이해할 수 있도록 해줄 것입니다. 2. General instructions Netwhat은 다중 선택 프로젝트입니다. 이 프로젝트는 여러분의 네트워크 지식을 평가할 것입니다. 인터넷에서 네트워크 강의들을 읽는 것으로 시작 할 수 있습니다. 그 이후에 지식을 테스트하기위한 온라인시험을 볼 수 있습니다. 일단 시험을 통과할 준비가 되었고, 공부를 끝마쳤다면 : netwhat.42.fr에 접속하세요. 3. Mandatory part ◦ What is an IP address IP : Inte..