[OSy] System calls - question (cz/sk)

Vojtech Horky horky at d3s.mff.cuni.cz
Mon Nov 26 14:06:05 CET 2018


Dobrý den.

On 11/26/18 1:56 PM, Slávka Ivaničová wrote:
> Zdravím, vedel by mi, prosím, niekto objasniť zopár vecí k téme System 
> calls z Operačných systémov?
>
> V súbore kernel/proc/sys_thread.c je fukcia sys_thread_join (uintptr_t 
> tid, void **thread_retval), ktorá má spojiť thread (join a thread).
>
> Chápem to tak, že fukcia robí nasledovné:
> // check that the tid pointer points to a safely mapped user memory,
> if (tid != NULL && !vma_check_user((void*)tid, sizeof(struct uthread))) {
> return ENOMEM;
> }

Koukám do komentářů a tam řádil tiskařský šotek, protože oba komentáře 
říkají to stejné a vztahují se k thread_retval. Z principu je tid 
pointer do kernelové paměti (vizte funkci sys_thread_create).


> Mojou otázkou je, či je potrebné v tejto fukcií prechádzať zoznam 
> process->uthread_list a porovnať, či sa uthread nachádza v zozname.

Je potřeba zajistit, že userspacový proces nezkouší např. čekat na 
vlákno jiného procesu popř., obecněji, jestli nepodstrčil tid, který je 
nesmyslný.


- VH

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://d3s.mff.cuni.cz/pipermail/nswi004/attachments/20181126/5bf5d626/attachment.html>


More information about the NSWI004 mailing list