1. Multithreading desteği olmayan bir işletim sisteminde çalıştırılan bir proses, sahip olduğu iki fonksiyonu sözde paralel çalıştırabilir mi? Açıklayınız. Kullanıcı seviyesi multithreading, harici kütüphaneleri kullanan yazılımlar gerçeklenebilir. Böyle bir proseste sözde paralellik mümkündür. 2. Kernel seviyesinde multithreading için her proses bir tred tablosu tutmalı mıdır? Nedenini açıklayınız. Kernel seviyesinde tred paralelliği işletim sistemi tarafından yürütüldüğü için tred tablosu kernel aracılığıyla düzenlenir. Bu yüzden proseslerin tred tablosu tutması gerekmez. 1. In a system used normal blocking, why does kernel level multithreading be used? In the systems used normal blocking and user level multithreading, the process wanted the interrupt stays in blocked state until I/O is finished. If kernel level multithreading is used, because operating system knows all treads, OS can block only thread needed I/O without blocking the related process entirely. 2. Consider that a computer virus can infect some treads and thus it can harm other threads. How can we prepare a protection for the threads from such a virus? Explain it. Because an inter-threads control mechanism is contrary to multithreading architecture, designing such a system is very difficult, is even impossible. If it was possible, this would destroy the corporation among threads. 1. For user level multithreading, is there a program counter for each thread? Explain the causes. To remember execution location of each thread is needed also in user level multithreading. Therefore logical program counter for each thread must be saved. 2. In kernel level multithreading, how can be reduced the cost of creation and destruction of threads? Account informations of completed threads are not destroyed entirely from thread table. Instead, they are reused by updating. Thus, allocation times on kernel for new created and completed threads are reduced.