Новые книги

Реалии сегодняшнего дня таковы, что для успешной работы на компьютере, и особенно – в Интернете, недостаточно просто иметь соответствующие навыки. В немаловажной степени результаты работы зависят от того, насколько хорошо пользователь умеет защищать свой компьютер и хранимую в нем информацию. Особую важность вопросы защиты данных приобретают в свете того, что современные мошенники постоянно совершенствуют свое «мастерство», и потеря бдительности может привести к весьма печальным последствиям.

В книге подробно рассматриваются различного рода нештатные ситуации, которые могут возникать при работе на компьютере, анализируются причины их возникновения и даются советы и рекомендации по решению этих проблем. Особое внимание в книге уделяется опасностям, которые подстерегают пользователя компьютера при работе в Интернете, а также вопросам восстановления операционной системы и данных.

Изучение этой книги позволит читателям в короткие сроки освоить навыки сохранения и защиты информации от ошибок, сбоев и злоумышленников.
Анна Левченко – создатель Всероссийского центра мониторинга опасного и запрещенного законом РФ контента, руководитель движения «Безопасное детство», помощник уполномоченного по правам ребенка при Президенте РФ, инициатор сетевого движения «Сдай педофила!».

Интернет и социальные сети давно прочно вошли в нашу жизнь. Сегодня практически у каждого ребенка есть аккаунты в соцсетях. Но бесконтрольный доступ к интернету для несовершеннолетних может обернуться трагедией. Каждому третьему ребенку в России приходилось сталкиваться с педофилами в Сети. Как защитить ребенка от угроз и что делать, если все-таки предотвратить трагедию не удалось? Что нужно сделать в первую очередь? Куда бежать, кому жаловаться? Ответы на эти вопросы вы найдете на страницах моей книги.

11.6 УПРАЖНЕНИЯ



 

11.6 УПРАЖНЕНИЯ

1. Что произойдет в том случае, если в программе debug будет отсутствовать вызов функции wait (Рисунок 11.3)? (Намек: возможны два исхода.)

2. С помощью функции ptrace отладчик считывает данные из пространства трассируемого процесса по одному слову за одну операцию. Какие изменения следует произвести в ядре операционной системы для того, чтобы увеличить количество считываемых слов? Какие изменения при этом необходимо сделать в самой функции ptrace?

3. Расширьте область действия функции ptrace так, чтобы в качестве параметра pid можно было указывать идентификатор процесса, не являющегося потомком текущего процесса. Подумайте над вопросами, связанными с защитой информации: При каких обстоятельствах процессу может быть позволено читать данные из адресного пространства другого, произвольного процесса? При каких обстоятельствах разрешается вести запись в адресное пространство другого процесса?

4. Организуйте из функций работы с сообщениями библиотеку пользовательского уровня с использованием обычных файлов, поименованных каналов и элементов блокировки. Создавая очередь сообщений, откройте управляющий файл для записи в него информации о состоянии очереди; защитите файл с помощью средств захвата файлов и других удобных для вас механизмов. Посылая сообщение данного типа, создавайте поименованный канал для всех сообщений этого типа, если такого канала еще не было, и передавайте сообщение через него (с подсчетом переданных байт). Управляющий файл должен соотносить тип сообщения с именем поименованного канала. При чтении сообщений управляющий файл направляет процесс к соответствующему поименованному каналу. Сравните эту схему с механизмом, описанным в настоящей главе, по эффективности, сложности реализации и функциональным возможностям.

5. Какие действия пытается выполнить программа, представленная на Рисунке 11.22?

*6. Напишите программу, которая подключала бы область разделяемой памяти слишком близко к вершине стека задачи и позволяла бы стеку при увеличении пересекать границу разделяемой области. В какой момент произойдет фатальная ошибка памяти?

7. Используйте в программе, представленной на Рисунке 11.14, флаг IPC_NOWAIT, реализуя условный тип семафора. Продемонстрируйте, как за счет этого можно избежать возникновения взаимных блокировок.

8. Покажите, как операции над семафорами типа P и V реализуются при работе с поименованными каналами. Как бы вы реализовали операцию P условного типа?

9. Составьте программы захвата ресурсов, использующие (а) поименованные каналы, (б) системные функции creat и unlink, (в) функции обмена сообщениями. Проведите сравнительный анализ их эффективности.

10. На практических примерах работы с поименованными каналами сравните эффективность использования функций обмена сообщениями, с одной стороны, с функциями read и write, с другой.

11. Сравните на конкретных программах скорость передачи данных при работе с разделяемой памятью и при использовании механизма обмена сообщениями. Программы, использующие разделяемую память, для синхронизации завершения операций чтения-записи должны опираться на семафоры.

   
     #include <sys/types.h>                                     
     #include <sys/ipc.h>                                       
     #include <sys/msg.h>                                       
     #define ALLTYPES 0                                         
                                                                
     main()                                                     
     {                                                          
        struct msgform                                          
        {                                                       
            long mtype;                                         
            char mtext[1024];                                   
        } msg;                                                  
        register unsigned int id;                               
                                                                
        for (id = 0; ; id++)                                    
            while (msgrcv(id,&msg,1024,ALLTYPES,IPC_NOWAIT) > 0)
                  ;                                             
     }                                                          

Рисунок 11.22

Предыдущая глава || Оглавление