
1 minute read
Mecanismo de semáforos
Cuando varios procesos compiten por los recursos, un tipo de datos abstracto llamado semáforo permite el uso exclusivo del recurso.
Los siguientes requisitos semánticos son satisfechos por el tipo de datos abstractos:. El número de procesos que aún pueden utilizar el recurso se registra en el estado interno del semáforo. Un número entero que nunca se vuelve negativo es un ejemplo de cómo se puede hacer.
Advertisement
Init(), wait() y signal() son las tres operaciones de semáforo que logran lo siguiente:
Init()
Limita el número de procesos que pueden acceder al recurso inicializando el semáforo antes de que cualquier proceso haya ejecutado una operación de espera() o una operación de señal(). Se ha construido como un semáforo binario si se inicializa con 1.
Wait()
El proceso se atasca en el semáforo si el estado es cero y espera a que lo despierte otro proceso. El contador se decrementa y la operación se considera exitosa si el estado muestra que un proceso más puede acceder al recurso.
La función wait() debe implementarse como una instrucción atómica. Sin embargo, la operación wait() puede detenerse en muchas implementaciones. Por lo general, hay una manera de determinar si wait() salió como resultado de una interrupción o un semáforo accedido.
Signal()
El proceso notifica al semáforo cuando el recurso ha terminado de ser utilizado. Un proceso se despierta si algún proceso en el semáforo todavía está bloqueado; de lo contrario, el contador se eleva. Además, se debe usar una instrucción atómica para implementar la operación signal(). En algunas implementaciones, si un proceso está bloqueado, es posible ver si se ha despertado con éxito. Se pueden utilizar diferentes estrategias que varían en sus niveles de justicia para despertar los procesos, como un sistema sencillo tipo FIFO.
El núcleo del sistema operativo se utiliza para controlar los recursos de hardware solicitados por los diversos componentes de software y sirve como intermediario, determinando quién y cuándo se otorga este acceso. Esto evita la sobrecarga del sistema, el uso de recursos innecesarios y el acceso a software malicioso, la capacidad de controlar todo el sistema manipulando el kernel. De esta manera, el Kernel funciona como una función de seguridad, que requiere que se otorgue acceso a través de varias capas.
También tiene que distribuir los recursos de manera efectiva y sistemática para garantizar que el Hardware y el Software interactúen entre sí de la manera más efectiva posible.
El Kernel está a cargo de hacer que casi todo funcione. Por ejemplo, debe ser capaz de arrancar una PC desde que la encendemos hasta que se ve el escritorio, comunicándose con los componentes de hardware que tiene la PC y que también son necesarios para que funcione. Una vez tengamos el escritorio, este debe poder ejecutar los programas que queramos abrir y hacer que funcionen en nuestro pc\.