Skip to content

ПЛР1 P3331 Дворкин Борис - #1

Open
worthant wants to merge 6 commits into
masterfrom
lab-1
Open

ПЛР1 P3331 Дворкин Борис#1
worthant wants to merge 6 commits into
masterfrom
lab-1

Conversation

@worthant

@worthant worthant commented Nov 29, 2024

Copy link
Copy Markdown
Member

P3331 Дворкин Борис Александрович
Продвинутый трек, оценка 5. ЛР 1. Введение в Xv6


Описание изменений

Лабораторная работа состояла из 3 частей

1 Часть: Pingpong

Реализовал програмку в юзер спейсе - pingpong.c. Суть программы в том, что parent и child процессы обмениваются друг с другом данными через пайпы. Во множественном числе т.к. первичная реализация состояла из нескольких пайпов, т.к. пайпы в Unix односторонние и против этого не попрёшь, но после кратного перечитывания материала в книжке я понял, что с помощью системного вызова wait() можно пойти на хитрость и обойтись одним пайпом, просто заставляя родительский процесс ждать пока дочерний отправит ему сообщение.

image

2 Часть: Dump

Реализовал системный вызов dumpkernel спейсе очев) - proc.c. Dump выводит на экран содержимое регистров s2-s11 текущего процесса.

3 Часть: Dump2

Реализовал системный вызов dump2 - там же, в proc.c. Dump2 отличается от Dump гибкостью.

Из книжки:

Designing a good interface turns out to be difficult. On the one hand, 
we would like the interface to be simple and narrow because that makes 
it easier to get the implementation right. On the other hand, we may be 
tempted to offer many sophisticated features to applications. The trick in 
resolving this tension is to design interfaces that rely on a few mechanisms 
that can be combined to provide much generality.

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

@worthant worthant added the enhancement New feature or request label Nov 29, 2024
@worthant
worthant requested a review from algoritmist November 29, 2024 05:56
@worthant worthant self-assigned this Nov 29, 2024
@worthant worthant changed the title Lab 1 ПЛР1 P3331 Дворкин Борис Nov 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant