Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
P3331 Дворкин Борис Александрович
Продвинутый трек, оценка 5. ЛР 1. Введение в Xv6
Описание изменений
Лабораторная работа состояла из 3 частей
1 Часть: Pingpong
Реализовал програмку в юзер спейсе - pingpong.c. Суть программы в том, что parent и child процессы обмениваются друг с другом данными через пайпы. Во множественном числе т.к. первичная реализация состояла из нескольких пайпов, т.к. пайпы в Unix односторонние и против этого не попрёшь, но после кратного перечитывания материала в книжке я понял, что с помощью системного вызова
wait()можно пойти на хитрость и обойтись одним пайпом, просто заставляя родительский процесс ждать пока дочерний отправит ему сообщение.2 Часть: Dump
Реализовал системный вызов
dump(в kernel спейсе очев) - proc.c. Dump выводит на экран содержимое регистров s2-s11 текущего процесса.3 Часть: Dump2
Реализовал системный вызов
dump2- там же, в proc.c. Dump2 отличается от Dump гибкостью.Из книжки:
Поясню: сложно сделать хороший интерфейс системных вызовов - нужно совместить простоту и удобство использования. Dump просто выводит на экран, что нельзя посмотреть в юзер спейсе, и дебажить с помощью него мы можем только текущий процесс, что очень неудобно. Поэтому был разработан Dump2 - с помощью него мы можем вывести дамп для указанного процесса, а также дамп этот мы выводим по указанному адресу, что будет доступно программе в юзер спейсе.