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
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.
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?
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.
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.
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
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...
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
De nada, pero oye que hay libros sobre funcionamiento de CPUs y tal...
Hasta donde se, Scheduler.exe no es un archivo de Windows
Cita de: Orubatosu en 16 Marzo 2017, 22:02 PM
Hasta donde se, Scheduler.exe no es un archivo de Windows
https://www.virustotal.com/es/
Dále caña :¬¬
Será si lo encuentro... en mi directorio "Juindows" no existe ningún archivo con ese nombre
Me suena de otras cosas, pero me da pereza guglear
Pereza es solo un vocablo, dí que no te da la gana y así nos enteramos todos.
Un saludo.
El scheduler administra la gestión de los procesos del OS.
Al cargar el kernel del OS, hay un driver que se encarga de enviar IRQs al cargar procesos en el mismo.
Por lo tanto el scheduler mantiene una lista de éstos y cuando cambia de un proceso a otro se produce un context switch en el dispatcher el cual guarda en un registro el estado actual de ese hilo o proceso, para así luego poder resumirlo.
Esto resolvería tu duda sobre que pasa con el PC (prog counter).
Saludos!
(http://courses.cs.vt.edu/csonline/MachineArchitecture/Lessons/CPU/cpu_circuit.gif)
Resto de info:
http://juanpablo-tcr.blogspot.com.es/2012/04/cpu.html
Un saludo.
Cita de: Orubatosu en 16 Marzo 2017, 22:02 PM
Hasta donde se, Scheduler.exe no es un archivo de Windows
No me refería a un archivo existente, puse un ejemplo para entender mi pregunta, "scheduler.exe" podria ser el nombre del planificador, si fuera un proceso, y como en los micronucleos (por ejemplo, el paginador de OSX) se implementan muchas funciones importantes al nivel de usuario, había preguntado para saber si el planificador de Windows (por eso la extensión .exe) era implementado a ese nivel (ya que, según algunos libros sobre sistemas operativos, Windows es un micronucleo, y a la vez usa un núcleo monolítico, un nucleo híbrido), igual gracias orubatosu, me aclaraste mis dudas igual que los demás
Gracias por su ayuda, saludos
No se responden temas con cierta antiguedad...
Y...
Citarya que, según algunos libros sobre sistemas operativos, Windows es un micronucleo, y a la vez usa un núcleo monolítico, un nucleo híbrido
Título y autor de ese o esos libros...
Ten en cuenta que ahora hay procesadores multinúcleo... Y Windows se ha optimizado para ello, para la multitask... "Eso de núcleo híbrido creo que es propio de AMD edición Bulldozer/Vishera"...