como se interrumpe un proceso en ejecucion en un OS de tiempo compartido?

Iniciado por MRx86, 15 Marzo 2017, 19:59 PM

0 Miembros y 1 Visitante están viendo este tema.

MRx86

buen dia, mi duda es la siguiente:

cuando el planificador de un OS de tiempo compartido (en esta suposicion el tiempo de ejecucion de cada proceso es de 1 seg) "considera" asignar el control de la CPU  a un proceso, y este proceso cumple con su tiempo de ejecucion (1seg) cual es el mecanismo para que el PC (Program Counter) se devualva al planificador de procesos?

pienso que esto se puede hacer por medio de una IRQ, pero por estar seguros.

PD: si este mecanismo se realiza mediante hardware, y este depende de la arquitectura del mismo, agradeceria que me explicasen como funcionaria en una placa ATX estandar, si no es mlestia, claro. Y si se hace mediante software, que me lo explicaran con windows NT y/o con Linux 2.x, repitiendo, si no es molestia.

saludos
"Tengo una pregunta que a veces me tortura: ¿Estoy loco
yo, o los locos son los demas?"
- Albert Einstein

Randomize

Se me ocurre la tecla "Pause"...

Se me ocurre tirar del cable de corriente...

Se me ocurre saltar los plomos a tiempo...

Se me ocurre ir a tomar café...


Un saludo.

MRx86

Cita de: Randomize en 15 Marzo 2017, 20:18 PM
Se me ocurre la tecla "Pause"...

Se me ocurre tirar del cable de corriente...

Se me ocurre saltar los plomos a tiempo...

Se me ocurre ir a tomar café...


Un saludo.

Se me ocurre que no te gusto alguna parte de mi pregunta, se puede saber que?
"Tengo una pregunta que a veces me tortura: ¿Estoy loco
yo, o los locos son los demas?"
- Albert Einstein

MRx86

Cita de: MRx86 en 15 Marzo 2017, 20:27 PM
Se me ocurre que no te gusto alguna parte de mi pregunta, se puede saber que?

edit: boton equivocado XD. sorry.
"Tengo una pregunta que a veces me tortura: ¿Estoy loco
yo, o los locos son los demas?"
- Albert Einstein

Randomize

Cita de: MRx86 en 15 Marzo 2017, 20:28 PM
Se me ocurre que no te gusto alguna parte de mi pregunta, se puede saber que?


A ver...


¿A que viene preguntar lo que pasa en la placa cuando es el procesador el que trabaja, si dijéramos el chipset, que hoy día está dentro del procesador...?



Citar
Se me ocurre la tecla "Pause"...

Se me ocurre tirar del cable de corriente...

Se me ocurre saltar los plomos a tiempo...

Se me ocurre ir a tomar café...


Se me pueden ocurrir más cosas...


Un saludo.


Orubatosu

Esto no tiene una respuesta sencilla. Los SO normalmente tienen varias colas donde coloca los diferentes procesos y les asigna prioridades. Puede que un proceso quede parado mientras espera un determinado evento por parte del hardware, o que espere un resultado de otro proceso. No existe un único mecanismo para ello. El SO va "dando paso" a las instrucciones de diferentes programas poniendolos en colas de ejecución.

Por decirlo de otro modo, el SO va cogiendo cada uno de los hilos de ejecución que le llegan desde los programas, selecciona parte de los mismos marcando cuando finaliza cada uno y los envía a diferentes colas (como procesadores por lo general). Luego existen diferentes tipos de políticas para priorizar que procesos se ejecutan mas a menudo y cuales menos. Cada sistema usa métodos diferentes, por ejemplo si no me equivoco mucho Windows usa el "Round Robin"

https://es.wikipedia.org/wiki/Planificaci%C3%B3n_Round-robin

Ten en cuenta que todos los procesos corren bajo la supervisión del SO. No es que el SO "ceda el control" a un hilo de programa, sino que todo corre bajo su control
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998

Randomize

Habría que explicar todo lo que ocurre en el procesador desde que se arranca la PC hasta que se ejecuta un .exe.


Bastamente o muy en grosso modo, o si quieres a lo bestia, la mayor parte del tiempo el procesador se está tocando los lereles hasta que una interrupción lo ponga a hacer algo, si es multihilo multiplicas la cosa...




MRx86

CitarTen en cuenta que todos los procesos corren bajo la supervisión del SO. No es que el SO "ceda el control" a un hilo de programa, sino que todo corre bajo su control

O sea que ninguna instruccion de un programa de usuario se ejecuta directamente sobre el hardware (sobre la cpu), sino que las instrucciones "pasan" primero por el planificador que es el que las ejecuta?, entonces el palnificador hace como de maquina virtual para los programas de usuario?

Y una pregunta, el planificador puede ser un proceso como tal?, o sea como no se... scheduler.exe?, y si es un programa, alguno sabe como se llama en el kernel de linux? es que siento curiosidadsobre como funciona esto exactamente... y creo que leyendo el codigo fuente de uno real podria entender mejor esto.

gracias por responder Randomize y Orubatosu
"Tengo una pregunta que a veces me tortura: ¿Estoy loco
yo, o los locos son los demas?"
- Albert Einstein

Randomize

De nada, pero oye que hay libros sobre funcionamiento de CPUs y tal...

Orubatosu

"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998