Organizaci ´on de la Computadora
Sistemas OperativosAndr ´es Felipe Barco Santa Pontificia Universidad Javeriana
Arquitectura
El Sistema operativo provee abstracciones para que el
hardware pueda ser operado sin tener que conocer los detalles de c ´omo son se realiza esa operaci ´on.
Arquitectura
El Sistema operativo provee abstracciones para que el
hardware pueda ser operado sin tener que conocer los detalles de c ´omo son se realiza esa operaci ´on.
John Von Neumann
“It is evident that the machine must be capable of storing in some manner not only digital information needed in a given computation..., but also the instructions wich govern the actual routines to be performed on the numerical dara”
Arquitectura de Von Newumann
Figura:Tomado de Operating Systems, 3 Edition, Gary Nutt
Arithmetical Logical Unit
La ALU realiza una serie de operaciones binarias tanto aritmeticas como l ´ogicas, tales como; suma, resta y el AND l ´ogico.
Arithmetical Logical Unit
La ALU realiza una serie de operaciones binarias tanto aritmeticas como l ´ogicas, tales como; suma, resta y el AND l ´ogico.
La unidad funcional realiza las operaciones.
Arithmetical Logical Unit
La ALU realiza una serie de operaciones binarias tanto aritmeticas como l ´ogicas, tales como; suma, resta y el AND l ´ogico.
La unidad funcional realiza las operaciones. Los registros retienen los operandos y resultados.
Arithmetical Logical Unit
La ALU realiza una serie de operaciones binarias tanto aritmeticas como l ´ogicas, tales como; suma, resta y el AND l ´ogico.
La unidad funcional realiza las operaciones. Los registros retienen los operandos y resultados. Los registros de estado reflejan los resultados de las operaciones de la unidad funcional.
Control Unit
La unidad de control es la encargada de la secuencia de obtener una instrucci ´on de memoria y ejecutarla.
Control Unit
La unidad de control es la encargada de la secuencia de obtener una instrucci ´on de memoria y ejecutarla.
El contador de programa (PC) contiene la direcci ´on de la pr ´oxima instrucci ´on a ejecutar.
Control Unit
La unidad de control es la encargada de la secuencia de obtener una instrucci ´on de memoria y ejecutarla.
El contador de programa (PC) contiene la direcci ´on de la pr ´oxima instrucci ´on a ejecutar.
El registro de instrucci ´on (IR) contiene una copia de la intrucci ´on actual una vez se ha obtenido de memoria.
Control Unit
La unidad de control es la encargada de la secuencia de obtener una instrucci ´on de memoria y ejecutarla.
El contador de programa (PC) contiene la direcci ´on de la pr ´oxima instrucci ´on a ejecutar.
El registro de instrucci ´on (IR) contiene una copia de la intrucci ´on actual una vez se ha obtenido de memoria. Sus tres unidades l ´ogicas son la unidad de obtenci ´on (fetch unit), unidad decodificadora (decode unit) y unidad de ejecuci ´on (execute unit).
Control Unit
Fetch-Execute Cycle
Fetch-Execute Cycle
PC = <machine start address>; IR = memory[PC]
Fetch-Execute Cycle
PC = <machine start address>; IR = memory[PC]
Fetch-Execute Cycle
PC = <machine start address>; IR = memory[PC]
haltflag = CLEAR;
while(haltFlag not SET during execution)f
PC = PC + 1; execute(IR); IR = memory[PC];
g;
Executable Memory
La unidad de memoria primaria almacena tanto programas como los datos que estos usan mientras operan en la CPU.
Executable Memory
La unidad de memoria primaria almacena tanto programas como los datos que estos usan mientras operan en la CPU.
El registro de direcci ´on de memoria (MAR) almacena la direcci ´on de memoria a la cual se desea acceder.
Executable Memory
La unidad de memoria primaria almacena tanto programas como los datos que estos usan mientras operan en la CPU.
El registro de direcci ´on de memoria (MAR) almacena la direcci ´on de memoria a la cual se desea acceder.
El registro de dato de memoria (MDR) almacena los datos que se escriben/leen a/desde la memoria.
Executable Memory
La unidad de memoria primaria almacena tanto programas como los datos que estos usan mientras operan en la CPU.
El registro de direcci ´on de memoria (MAR) almacena la direcci ´on de memoria a la cual se desea acceder.
El registro de dato de memoria (MDR) almacena los datos que se escriben/leen a/desde la memoria.
El registro de comando (Cmd) almacena la operaci ´on deseada (read/write).
Devices
Los dispositivos se unen al computador por medio de los buses. Cada dispositivo de entrada envia datos a los registros de la CPU. Cuando se usa esa informaci ´on se envia desde la CPU a los dispositvos de salida.
Devices
Los dispositivos se unen al computador por medio de los buses. Cada dispositivo de entrada envia datos a los registros de la CPU. Cuando se usa esa informaci ´on se envia desde la CPU a los dispositvos de salida.
El controlador del dispositivo provee un conjunto de componentes que la CPU puede manipular para hacer operar el dispositivo.
Devices
Los dispositivos se unen al computador por medio de los buses. Cada dispositivo de entrada envia datos a los registros de la CPU. Cuando se usa esa informaci ´on se envia desde la CPU a los dispositvos de salida.
El controlador del dispositivo provee un conjunto de componentes que la CPU puede manipular para hacer operar el dispositivo.
El dispositivo (entrada/salida)
Device Controllers
Motivaci ´on
Un dispositivo requiere de mucha antenci ´on durante su operaci ´on. Si el software realizar ´a esto, se necesitaria monitorear constantemente el dispositivo por lo cual se gastar´ıan recursos.
busy define si el dispositivo est ´a ocupdado
Device Controllers
Motivaci ´on
Un dispositivo requiere de mucha antenci ´on durante su operaci ´on. Si el software realizar ´a esto, se necesitaria monitorear constantemente el dispositivo por lo cual se gastar´ıan recursos.
busy define si el dispositivo est ´a ocupdado
done define si la operaci ´on encargada al dispositivo a
Device Controllers
Motivaci ´on
Un dispositivo requiere de mucha antenci ´on durante su operaci ´on. Si el software realizar ´a esto, se necesitaria monitorear constantemente el dispositivo por lo cual se gastar´ıan recursos.
busy define si el dispositivo est ´a ocupdado
done define si la operaci ´on encargada al dispositivo a
terminado
error define si ha habido alg ´un error mientras se operaba
Device Controllers
Motivaci ´on
Un dispositivo requiere de mucha antenci ´on durante su operaci ´on. Si el software realizar ´a esto, se necesitaria monitorear constantemente el dispositivo por lo cual se gastar´ıan recursos.
busy define si el dispositivo est ´a ocupdado
done define si la operaci ´on encargada al dispositivo a
terminado
error define si ha habido alg ´un error mientras se operaba command define que comando se ejecuta
Device Controllers
Motivaci ´on
Un dispositivo requiere de mucha antenci ´on durante su operaci ´on. Si el software realizar ´a esto, se necesitaria monitorear constantemente el dispositivo por lo cual se gastar´ıan recursos.
busy define si el dispositivo est ´a ocupdado
done define si la operaci ´on encargada al dispositivo a
terminado
error define si ha habido alg ´un error mientras se operaba command define que comando se ejecuta
Los regustros de datos son, naturalmente, para almacenar datos de entrada y salida
Posibilidades
El dise ˜no anterior permite cubrir algunas funcionalidades.
Posibilidades
El dise ˜no anterior permite cubrir algunas funcionalidades. Direct Memory Access (DMA)
Posibilidades
El dise ˜no anterior permite cubrir algunas funcionalidades. Direct Memory Access (DMA)
Memory-Mapped I/O
Disabling Interrupts
Polling
M ´etodo Antiguo
El polling es el m ´etodo en el cual el software esta haciendo un chequeo constante de los registros busy y done, averiguando si el dispositivo termino su trabajo. Situacion busy-wait en el procesador!!!
Disabling Interrupts
Polling I/O
Disabling Interrupts
Interrupts
M ´etodo Moderno
La arquitectura de Von Neumann ha sido modificada para incorporar las intrrupciones. Esto permitir ´a un uso mucho m ´as eficiente de los recursos por medio del solapar el uso de estos.
Disabling Interrupts
Interrupts
M ´etodo Moderno
La arquitectura de Von Neumann ha sido modificada para incorporar las intrrupciones. Esto permitir ´a un uso mucho m ´as eficiente de los recursos por medio del solapar el uso de estos.
Interrup Request Un registro al interior de la CPU controla el hecho de que un dispositivo temin ´o su trabajo.
Disabling Interrupts
Fetch-Execute Cycle with Interrupts
while(haltFlag not SET during execution)f
IR = memory[PC]; PC = PC + 1; execute(IR);
Disabling Interrupts
Fetch-Execute Cycle with Interrupts
while(haltFlag not SET during execution)f
IR = memory[PC]; PC = PC + 1; execute(IR); if(InterrupRequest) f memory[0] = PC; PC = memory[1]; g;
Disabling Interrupts
Interrup Handler
Interrupt Handlerf
Disabling Interrupts
Interrup Handler
Interrupt Handlerf
saveProcessorState();
for (i=0, i<Number devices; i++)
if (device[i].done == 1 ) goto device handler(i); /* Something wrong if we get here */
g;
Disabling Interrupts
Disabling Interrupts
if(InterrupRequest && InterruptEnabled) f
/* Interrupt current process */ memory[0] = PC;
PC = memory[1];
Disabling Interrupts