My Project
Loading...
Searching...
No Matches
kernel_engine.c File Reference
#include "kernel_engine.h"
#include "kernel_print.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/wait.h>
#include "ename.c.inc"

Go to the source code of this file.

Macros

#define BUF_SIZE   500
 

Functions

void safe_kernel_printf (const char *format,...)
 스레드 안전한 출력 함수
 
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 ()
 뮤텍스 초기화 함수
 
LinkedListcreate_linkedlist ()
 연결 리스트 생성 함수
 
void push (LinkedList *list, void *data)
 연결 리스트에 요소 추가 함수
 
void * pop (LinkedList *list)
 연결 리스트에서 요소 제거 함수
 
bool is_empty (LinkedList *list)
 연결 리스트가 비었는지 확인하는 함수
 
void destroy_linkedlist (LinkedList *list)
 연결 리스트 삭제 함수
 
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,...)
 커널 사용법 오류 함수
 
void kernel_cmdLineErr (const char *format,...)
 커맨드 라인 오류 처리 함수
 
void * semaphore_thread (void *arg)
 세마포어를 사용하는 스레드 작업 함수
 
void * mutex_thread (void *arg)
 뮤텍스를 사용하는 스레드 작업 함수
 
void run_multithreading (int num_threads, int use_semaphore,...)
 멀티스레드 실행 함수 (쓰레드 수 및 동기화 방법을 입력받음)
 

Macro Definition Documentation

◆ BUF_SIZE

#define BUF_SIZE   500

Definition at line 24 of file kernel_engine.c.

Function Documentation

◆ create_linkedlist()

LinkedList * create_linkedlist ( )

연결 리스트 생성 함수

연결 리스트 생성 함수 선언

Returns
LinkedList 포인터

Definition at line 170 of file kernel_engine.c.

◆ create_multi_processes()

void create_multi_processes ( int 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실행할 함수 포인터

Definition at line 76 of file kernel_engine.c.

◆ create_threads()

void create_threads ( int num_threads,
... )

스레드 생성 함수

스레드 생성 함수 선언

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

Definition at line 50 of file kernel_engine.c.

◆ destroy_linkedlist()

void destroy_linkedlist ( LinkedList * list)

연결 리스트 삭제 함수

연결 리스트 삭제 함수 선언

Parameters
listLinkedList 포인터

Definition at line 238 of file kernel_engine.c.

◆ init_mutex()

pthread_mutex_t * init_mutex ( )

뮤텍스 초기화 함수

뮤텍스 초기화 함수 선언

Returns
뮤텍스 포인터

Definition at line 157 of file kernel_engine.c.

◆ init_semaphore()

sem_t * init_semaphore ( int value)

세마포어 초기화 함수

세마포어 초기화 함수 선언

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

Definition at line 122 of file kernel_engine.c.

◆ is_empty()

bool is_empty ( LinkedList * list)

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

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

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

Definition at line 229 of file kernel_engine.c.

◆ kernel_cmdLineErr()

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

커맨드 라인 오류 처리 함수

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

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

Definition at line 382 of file kernel_engine.c.

◆ kernel_errExit()

void kernel_errExit ( const char * 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포맷 문자열
...가변 인자 리스트

Definition at line 330 of file kernel_engine.c.

◆ kernel_errMsg()

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

커널 오류 메시지 출력 함수

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

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

Definition at line 296 of file kernel_engine.c.

◆ kernel_fatal()

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

커널 치명적 오류 함수

커널 치명적 오류 함수 선언

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

Definition at line 346 of file kernel_engine.c.

◆ kernel_usageErr()

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

커널 사용법 오류 함수

커널 사용법 오류 함수 선언

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

Definition at line 362 of file kernel_engine.c.

◆ mutex_thread()

void * mutex_thread ( void * arg)

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

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

Parameters
arg뮤텍스 포인터
Returns
NULL

Definition at line 427 of file kernel_engine.c.

◆ pop()

void * pop ( LinkedList * list)

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

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

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

Definition at line 203 of file kernel_engine.c.

◆ push()

void push ( LinkedList * list,
void * 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세마포어 사용 여부
...동기화 방법 (세마포어 또는 뮤텍스)

Definition at line 453 of file kernel_engine.c.

◆ safe_kernel_printf()

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

스레드 안전한 출력 함수

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

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

Definition at line 32 of file kernel_engine.c.

◆ semaphore_thread()

void * semaphore_thread ( void * arg)

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

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

Parameters
arg세마포어 포인터
Returns
NULL

Definition at line 402 of file kernel_engine.c.