Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Понятие виртуальной файловой системы

Автор:   •  Апрель 14, 2023  •  Лабораторная работа  •  1,972 Слов (8 Страниц)  •  137 Просмотры

Страница 1 из 8

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ 
УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ 
БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ 
ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ
  
(НИУ «БелГУ») 
ИНСТИТУТ ИНЖЕНЕРНЫХ И ЦИФРОВЫХ ТЕХНОЛОГИЙ 

КАФЕДРА ПРИКЛАДНОЙ МАТЕМАТИКИ И ИНФОРМАТИКИ, ГРАФИЧЕСКОГО МОДЕЛИРОВАНИЯ И КОМРЬЮТЕРНОГО ДИЗАЙНА. 

 

 

Отчет по лабораторной работе №6
Тема работы «Понятие виртуальной файловой системы»  
по дисциплине «Операционные системы» 

 

студента (ки) очного отделения  

____2____курса _12002004__группы 

_Щеблыкина Дениса Евгеньевича_ 

 

Проверил:

 Батищев Денис Сергеевич

 

 

Белгород 
2022

Задание №1

#include <signal.h>

int main(void){

    (void)signal(SIGINT, SIG_IGN);

    while(1);

    return 0;

}

Задание №2

#include <signal.h>

int main(void){

    (void)signal(SIGINT, SIG_IGN);

    (void)signal(SIGQUIT, SIG_IGN);

    while(1);

    return 0;

}

Задание №3

#include <signal.h>

#include <stdio.h>

void my_handler(int nsig){

    printf("Receive signal %d,

           CTRL-C pressed\n", nsig);

}

int main(void){

    (void)signal(SIGINT, my_handler);

    while(1);

    return 0;

}

[pic 1]

Задание №4

#include <signal.h>

#include <stdio.h>

void my_handler1(int nsig){

    printf("Receive signal %d,CTRL-C pressed\n", nsig);

}

void my_handler2(int nsig){

    printf("Receive signal %d,CTRL-4 pressed\n", nsig);

}

int main(void){

    (void)signal(SIGINT, my_handler1);

    (void)signal(SIGQUIT, my_handler2);

    while(1);

    return 0;

}

[pic 2]

Задание №5

#include <signal.h>

#include <stdio.h>

int i=0;

void (*p)(int);

void my_handler(int nsig){

    printf("Receive signal %d, CTRL-C pressed\n", nsig);

    i = i+1;

    if(i == 5) (void)signal(SIGINT, p);

}

int main(void){

    p = signal(SIGINT, my_handler);

    while(1);

    return 0;

}

[pic 3]

Задание №6

#include <sys/types.h>

#include <unistd.h>

#include <stdio.h>

#include <stdlib.h>

#include <signal.h>

#define WRITE SIGUSR2

void child_handler(int nsig){

    printf("Children receive signal %d\n", nsig);

}

int main(){

    int fd[2];

    size_t size;

    char resstring[14];

    signal(SIGUSR1, child_handler);

    if(pipe(fd) < 0){

        printf("Can\'t create pipe\n");

        _exit(-1);

    } else {

        printf("Create pipe successfully %d %d \n", fd[0], fd[1]);

    }

    int pid = fork();

    if(pid == -1){

        printf("Can\'t fork child\n");

        exit(-1);

    } else if (pid == 0) {

        pause();

        size = read(fd[0], resstring, 14);

        if(size < 0){

            printf("Can\'t read string\n");

            _exit(-1);

        }

       

        sleep(1);

       

        printf("Children read s: %s\n",resstring);

       

        size = write(fd[1], "Hello, world!", 14);

        if(size != 14){

            printf("Can\'t write all string\n");

            _exit(-1);

        }

       

        sleep(1);

       

        kill(getppid(), SIGUSR1);

        close(fd[1]);

        close(fd[0]);

        printf("Children exit\n");

    } else {

        size = write(fd[1], "Hello, world!", 14);

        if(size != 14){

            printf("Parent can\'t write all string %d\n ", size);

            _exit(-1);

        }

        printf("Parent write successfully\n");

        sleep(1);

        kill(pid, SIGUSR1);

       

        printf("Sent read signal \n");

        sleep(1);

        pause();

       

        size = read(fd[0], resstring, 14);

        if(size < 0){

            printf("Can\'t read string\n");

...

Скачать:   txt (8.7 Kb)   pdf (139 Kb)   docx (176.6 Kb)  
Продолжить читать еще 7 страниц(ы) »
Доступно только на Essays.club