OS/Homework 8

[운영체제] 연결리스트를 이용한 LRU 알고리즘 만들기

https://julian5383.tistory.com/75?category=926879 [운영체제] 연결리스트를 이용한 FIFO 알고리즘 만들기 case에 있는 파일들은 트레이스 파일입니다. #include #include typedef struct node { int num; struct node* next; }NODE; NODE* head; NODE* tail; void init() { head = (NODE*)malloc(sizeof(NODE)); tail =.. julian5383.tistory.com 위의 게시물에서 이어집니다. #include #include #include #define TRUE 1 #define FALSE 0 typedef struct node { int num; stru..

OS/Homework 2022.06.27

[운영체제] 연결리스트를 이용한 FIFO 알고리즘 만들기

case에 있는 파일들은 트레이스 파일입니다. #include #include typedef struct node { int num; struct node* next; }NODE; NODE* head; NODE* tail; void init() { head = (NODE*)malloc(sizeof(NODE)); tail = (NODE*)malloc(sizeof(NODE)); head->next = tail; tail->next = tail; } void insert(int num) { NODE* p = malloc(sizeof(NODE)); NODE* in_head = head; NODE* in_node = in_head->next; p->num = num; if (head->next==tail) { p..

OS/Homework 2022.06.27

[운영체제] 쉘 프로그래밍

1. 다음 프로그램을 참고하여 쉘을 작성하시오. #include #include char * get_next_command(void); int main(int argc, char* argv[]) { while(1){ char *cmd = get_next_command(); int child_pid = fork(); if(child_pid == 0){ exec(cmd); panic("exec failed!"); } else{ wait(child_pid); } } } [Hint] exec 관련 함수 #include int execl(const char *pathname, const char *arg0, ... /* (char *) */ ); int execv(const char *pathname, char ..

OS/Homework 2022.06.27

[운영체제] fork() 사용하기

1. 다음 프로그램을 실행해보시오. #include #include int main(int argc, char* argv[]) { char *name = argv[0]; int child_pid = fork(); if(child_pid == 0){ printf("Child of %s is %d\n", name, child_pid); return 0; } else{ printf("My child is %d\n", child_pid); return 0; } } Q. 실행결과는? My child is 20134 Child of ./child_fork is 0 2. 두 개의 자식 프로세스를 생성한 후, 부모 프로세스는 'P'를 출력하고, 첫 번째 자식 프로세스는 'A', 두 번째 자식 프로세스는 'B'를 각각 ..

OS/Homework 2022.06.27

[운영체제] 운영체제를 들어가기 전에 유닉스 복습하기

1. 서버에 접속하게 해주는 프로그램 이름: mobaxterm 2. vi를 이용하여 “HelloWorld”를 출력하는 프로그램을 작성하시오. 2.1 vi에서 모드를 바꾸는 명령어: vi hi.로 만들고 i를 눌러서 편집모드로 바꾼다. 2.2 vi에서 파일을 저장하기 위한 명령어: esc -> :wq입력 -> 엔터 2.3 프로그램 소스코드: #include int main(void) { printf("Hello World\n"); return 0; } 3. gcc를 이용하여 프로그램을 컴파일하여 실행 결과를 확인하시오. 3.1 컴파일 명령어: gcc –o helloworld helloworld.c 이후 ./helloworld 로 실행 4. 1부터 1,000까지의 합을 구하는 반복문을 for 문을 사용하여 ..

OS/Homework 2022.03.07