My Project
Loading...
Searching...
No Matches
kernel_engine.h File Reference
#include <pthread.h>
#include <semaphore.h>
#include <stdarg.h>
#include <stdbool.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/wait.h>

Go to the source code of this file.

Classes

struct  Node
 연결 리스트의 노드를 정의하는 구조체 More...
 
struct  LinkedList
 연결 리스트를 정의하는 구조체 More...
 

Macros

#define ENGINE_H
 

Typedefs

typedef struct Node Node
 
typedef struct LinkedList LinkedList
 

Functions

void safe_kernel_printf (const char *format,...)
 스레드 안전한 출력 함수 선언
 
LinkedListcreate_linkedlist ()
 연결 리스트 생성 함수 선언
 
void push (LinkedList *list, void *data)
 연결 리스트에 요소 추가 함수 선언
 
void * pop (LinkedList *list)
 연결 리스트에서 요소 제거 함수 선언
 
bool is_empty (LinkedList *list)
 연결 리스트가 비었는지 확인하는 함수 선언
 
void destroy_linkedlist (LinkedList *list)
 연결 리스트 삭제 함수 선언
 
void create_threads (int num_threads,...)
 스레드 생성 함수 선언
 
void create_single_process (void(*func)())
 단일 프로세스 생성 함수 선언
 
void create_multi_processes (int num_processes,...)
 다중 프로세스 생성 함수 선언
 
sem_t * init_semaphore (int value)
 세마포어 초기화 함수 선언
 
pthread_mutex_t * init_mutex ()
 뮤텍스 초기화 함수 선언
 
void kernel_errMsg (const char *format,...)
 커널 오류 메시지 출력 함수 선언
 
void kernel_errExit (const char *format,...)
 커널 오류 종료 함수 선언
 
void kernel_errExitEN (int errnum, const char *format,...)
 커널 오류 종료 함수 선언 (오류 번호 사용)
 
void kernel_fatal (const char *format,...)
 커널 치명적 오류 함수 선언
 
void kernel_usageErr (const char *format,...) __attribute__((__noreturn__))
 커널 사용법 오류 함수 선언
 
void kernel_cmdLineErr (const char *format,...) __attribute__((__noreturn__))
 커맨드 라인 오류 처리 함수 선언
 
void * semaphore_thread (void *arg)
 세마포어를 사용하는 스레드 작업 함수 선언
 
void * mutex_thread (void *arg)
 뮤텍스를 사용하는 스레드 작업 함수 선언
 
void run_multithreading (int num_threads, int use_semaphore,...)
 멀티스레드 실행 함수 선언 (쓰레드 수 및 동기화 방법을 입력받음)
 

Macro Definition Documentation

◆ ENGINE_H

#define ENGINE_H

Definition at line 14 of file kernel_engine.h.

Typedef Documentation

◆ LinkedList

typedef struct LinkedList LinkedList

◆ Node

typedef struct Node Node

Function Documentation

◆ create_linkedlist()

LinkedList * create_linkedlist ( )

연결 리스트 생성 함수 선언

Returns
생성된 연결 리스트의 포인터

연결 리스트 생성 함수 선언

Returns
LinkedList 포인터

Definition at line 170 of file kernel_engine.c.

◆ create_multi_processes()

void create_multi_processes ( int num_processes,
... )

다중 프로세스 생성 함수 선언

Parameters
num_processes생성할 프로세스 수
...프로세스 함수 포인터

다중 프로세스 생성 함수 선언

Parameters
num_processes생성할 프로세스 수
...프로세스 함수 포인터

Definition at line 94 of file kernel_engine.c.

◆ create_single_process()

void create_single_process ( void(* func )())

단일 프로세스 생성 함수 선언

Parameters
func실행할 함수 포인터

단일 프로세스 생성 함수 선언

Parameters
func실행할 함수 포인터

Definition at line 76 of file kernel_engine.c.

◆ create_threads()

void create_threads ( int num_threads,
... )

스레드 생성 함수 선언

Parameters
num_threads생성할 스레드 수
...스레드 함수 포인터

스레드 생성 함수 선언

Parameters
num_threads생성할 스레드 수
...스레드 함수 포인터

Definition at line 50 of file kernel_engine.c.

◆ destroy_linkedlist()

void destroy_linkedlist ( LinkedList * list)

연결 리스트 삭제 함수 선언

Parameters
list연결 리스트의 포인터

연결 리스트 삭제 함수 선언

Parameters
listLinkedList 포인터

Definition at line 238 of file kernel_engine.c.

◆ init_mutex()

pthread_mutex_t * init_mutex ( )

뮤텍스 초기화 함수 선언

Returns
뮤텍스 포인터

뮤텍스 초기화 함수 선언

Returns
뮤텍스 포인터

Definition at line 157 of file kernel_engine.c.

◆ init_semaphore()

sem_t * init_semaphore ( int value)

세마포어 초기화 함수 선언

Parameters
value초기화할 값
Returns
세마포어 포인터

세마포어 초기화 함수 선언

Parameters
value초기화할 값
Returns
세마포어 포인터

Definition at line 122 of file kernel_engine.c.

◆ is_empty()

bool is_empty ( LinkedList * list)

연결 리스트가 비었는지 확인하는 함수 선언

Parameters
list연결 리스트의 포인터
Returns
true 리스트가 비었을 경우
false 리스트에 요소가 있을 경우

연결 리스트가 비었는지 확인하는 함수 선언

Parameters
listLinkedList 포인터
Returns
true 리스트가 비었을 경우
false 리스트에 요소가 있을 경우

Definition at line 229 of file kernel_engine.c.

◆ kernel_cmdLineErr()

void kernel_cmdLineErr ( const char * format,
... )

커맨드 라인 오류 처리 함수 선언

Parameters
format포맷 문자열
...가변 인자 리스트

커맨드 라인 오류 처리 함수 선언

Parameters
format포맷 문자열
...가변 인자 리스트

Definition at line 382 of file kernel_engine.c.

◆ kernel_errExit()

void kernel_errExit ( const char * format,
... )

커널 오류 종료 함수 선언

Parameters
format포맷 문자열
...가변 인자 리스트

커널 오류 종료 함수 선언

Parameters
format포맷 문자열
...가변 인자 리스트

Definition at line 313 of file kernel_engine.c.

◆ kernel_errExitEN()

void kernel_errExitEN ( int errnum,
const char * format,
... )

커널 오류 종료 함수 선언 (오류 번호 사용)

Parameters
errnum오류 번호
format포맷 문자열
...가변 인자 리스트

커널 오류 종료 함수 선언 (오류 번호 사용)

Parameters
errnum오류 번호
format포맷 문자열
...가변 인자 리스트

Definition at line 330 of file kernel_engine.c.

◆ kernel_errMsg()

void kernel_errMsg ( const char * format,
... )

커널 오류 메시지 출력 함수 선언

Parameters
format포맷 문자열
...가변 인자 리스트

커널 오류 메시지 출력 함수 선언

Parameters
format포맷 문자열
...가변 인자 리스트

Definition at line 296 of file kernel_engine.c.

◆ kernel_fatal()

void kernel_fatal ( const char * format,
... )

커널 치명적 오류 함수 선언

Parameters
format포맷 문자열
...가변 인자 리스트

커널 치명적 오류 함수 선언

Parameters
format포맷 문자열
...가변 인자 리스트

Definition at line 346 of file kernel_engine.c.

◆ kernel_usageErr()

void kernel_usageErr ( const char * format,
... )

커널 사용법 오류 함수 선언

Parameters
format포맷 문자열
...가변 인자 리스트

커널 사용법 오류 함수 선언

Parameters
format포맷 문자열
...가변 인자 리스트

Definition at line 362 of file kernel_engine.c.

◆ mutex_thread()

void * mutex_thread ( void * arg)

뮤텍스를 사용하는 스레드 작업 함수 선언

Parameters
arg뮤텍스 포인터
Returns
NULL

뮤텍스를 사용하는 스레드 작업 함수 선언

Parameters
arg뮤텍스 포인터
Returns
NULL

Definition at line 427 of file kernel_engine.c.

◆ pop()

void * pop ( LinkedList * list)

연결 리스트에서 요소 제거 함수 선언

Parameters
list연결 리스트의 포인터
Returns
제거된 데이터 포인터

연결 리스트에서 요소 제거 함수 선언

Parameters
listLinkedList 포인터
Returns
제거된 데이터

Definition at line 203 of file kernel_engine.c.

◆ push()

void push ( LinkedList * list,
void * data )

연결 리스트에 요소 추가 함수 선언

Parameters
list연결 리스트의 포인터
data추가할 데이터 포인터

연결 리스트에 요소 추가 함수 선언

Parameters
listLinkedList 포인터
data추가할 데이터

Definition at line 183 of file kernel_engine.c.

◆ run_multithreading()

void run_multithreading ( int num_threads,
int use_semaphore,
... )

멀티스레드 실행 함수 선언 (쓰레드 수 및 동기화 방법을 입력받음)

Parameters
num_threads생성할 스레드 수
use_semaphore세마포어 사용 여부
...동기화 방법 (세마포어 또는 뮤텍스)

멀티스레드 실행 함수 선언 (쓰레드 수 및 동기화 방법을 입력받음)

Parameters
num_threads생성할 스레드 수
use_semaphore세마포어 사용 여부
...동기화 방법 (세마포어 또는 뮤텍스)

Definition at line 453 of file kernel_engine.c.

◆ safe_kernel_printf()

void safe_kernel_printf ( const char * format,
... )

스레드 안전한 출력 함수 선언

Parameters
format포맷 문자열
...가변 인자 리스트

스레드 안전한 출력 함수 선언

Parameters
format포맷 문자열
...가변 인자 리스트

Definition at line 32 of file kernel_engine.c.

◆ semaphore_thread()

void * semaphore_thread ( void * arg)

세마포어를 사용하는 스레드 작업 함수 선언

Parameters
arg세마포어 포인터
Returns
NULL

세마포어를 사용하는 스레드 작업 함수 선언

Parameters
arg세마포어 포인터
Returns
NULL

Definition at line 402 of file kernel_engine.c.