viernes, 16 de noviembre de 2012

Gestión de los recursos

1. Procesos y flujos
Un proceso es un concepto manejado por el SO y que referencia un programa en ejecución.
A los procesos se les denomina flujos de control, tareas, threads o hilos, según su contexto.
Cuando se ejecuta mas de un proceso de forma concurrente en un sistema, todos necesitan que el propio sistema les suministre una serie de recursos, esto se los da la UCP. Se encarga de asignar estos recursos en un orden adecuado y atendiendo prioridades. También realiza funciones de sincronización en los procesos.
Cada vez que se ejecuta un programa, además de ubicar en memoria las instrucciones que lo componen y sus datos asociados, a dicho proceso le da una estructura de datos.
Esta estructura de datos, es única para cada proceso y controla que funcione bien. Es a lo que denominamos bloque de control de proceso o BCP y contendrá el estado actual del proceso, el identificador, la prioridad, la ubicación en memoria y los recursos utilizados.
2. Hebras y estados de los procesos
Una hebra es un punto de ejecución en un proceso.
Las hebras son un método de software para mejorar el rendimiento y eficacia de los SO. Las hebras de un mismo proceso comparten recursos.
El proceso clásico solo contiene una hebra.
Ahora hay muchos programas que están preparados para mas de una hebra ( Multihebra), y se ejecutan a la vez como por ejemplo: desfragmentar el disco duro que aunque solo sea un proceso implica varios procesos.
Los estados posibles pueden ser:
- En ejecución: El procesador ejecuta las instrucciones del programa que lo componen y tiene concedido el tiempo de uso de la UCP en un instante preciso.
- Preparado, en espera o activo: Un proceso esta preparado para ser ejecutado; es decir, esta esperando a que le toque para poder utilizar el intervalo de tiempo que le pertenece y poner a funcionar sus instrucciones accediendo a los recursos del sistema.
- Bloqueado: El proceso esta retenido; es decir, esta bloqueado por varias causas. Uno de estos motivos puede ser que utilice el mismo fichero que otro programa de datos.
Todos los procesos dentro de cualquier SO tienen unas características que las identifican.
Cada proceso, tiene un identificador que lo diferencia de los demás. Cada proceso tiene un numero que les da el SO que sirve para identificar al proceso, ponerlo en ejecución, pararlo, detenerlo... Este identificador de proceso se le denomina PID.
Los procesos los lanzan normalmente otros procesos. Dependen de otros procesos llamados proceso padre. Al nuevo proceso se le llama Proceso hijo.
3. Transición de los procesos
Una vez que un programa se ha hecho proceso, puede atravesar varias fases o estados.
Cuando un proceso se lanza, nunca se ejecuta directamente, se coloca en la cola de procesos en un estado denominado preparado. Cuando la UCP le asigna su tiempo, el proceso pasa de estar preparado a ejecución. Estos dos estados se alternan en caso de que se este ejecutando mas de un proceso en el sistema.
Los cambios de estado se les llama transiciones.
- Transición A: Ocurre cuando el programa que esta en ejecución necesita algún elemento, señal o dato para continuar ejecutándose.
- Transición B: Ocurre cuando un programa o proceso ha utilizado el tiempo asignado por la UCP para su ejecución y tiene que dejar paso al siguiente proceso.
- Transición C: Ocurre cuando el proceso que esta preparado pasa al proceso de ejecución  es decir, cuando al proceso le llega una nueva disposición de tiempo de la UCP para poder ejecutarse.
- Transición D: Ocurre cuando el proceso pasa de estar bloqueado a estar preparado, es decir, cuando el proceso recibe una orden o señal que estaba esperando para poder pasar al estado preparado y, posteriormente, tras la transición, a estado de ejecución.
En un sistema multiproceso/multihebra, cuando un proceso o hilo pasa de un estado a otro, se producira un cambio de contexto.
Existen dos tipos de cambio de contexto son:
Parcial: si se hace entre hilos del mismo proceso.
Completo: Si es entre hilos de diferentes procesos, ya que cambia a la memoria, hardware... 
Los diferentes estados tienen una relación directa con Prioridades, son aquellas que el administrador del sistema, o el sistema le asignan a los procesos. De esto dependerá que un proceso se ejecute antes o después.
La Planificacion consiste en indicar al ordenador los procesos que deben ejecutarse y los estados que estos deben adoptar gracias a los algoritmos de planificacion podemos decidir que proceso ha de ejecutarse en cada momento y por que. Algunas características de estos algoritmos son la imparcialidad, la equipad, la eficiencia, el tiempo de respuesta y el rendimiento.
Una vez cargado el proceso, el SO asigna a través del planificador la prioridad del nuevo proceso respecto de los que hay en ejecución.
Cada proceso atraviesa varias fases. En un momento dado, el proceso se estará ejecutando; posteriormente estará en espera, mientras la UCP ejecuta otro; otros procesos estarán preparados para ser lanzados; otros podrán estar bloqueados...
Cuando se están ejecutando varias tareas, es necesario que compartan el tiempo de trabajo de la UCP. Consiste en partir el tiempo de ejecución del procesador en minúsculos intervalos de tiempo (quantum) e ir asignando cada uno de esos intervalos en ejecución a cada proceso que esta en ejecución.
4. Bloque de control de procesos
El bloque de control de procesos o BCP. En sistemas operativos multiproceso, el sistema operativo mantiene listas de bloques de control de procesos para cada uno de los estados del sistema.
El BCP de cada proceso almacena información como:
- Estado actual del proceso: Ejecución, preparado o bloqueado.
- Identificador del proceso: dependiendo del sistema operativo, a cada proceso se le asigna un PID.
- Prioridad del proceso: La asignada por el planificador.
Ubicación en memoria: Dirección de memoria en la que se carga el proceso
- Recursos utilizados: Recursos hardware y software para poder ejecutarse.
Gracias a los algoritmos de planificación  el cargador, planificador, BCP, recursos hardware y software se sincronizan mediante el sistema operativo para la ejecucion ordenada de procesos.
En programas multihilo, el BCP puede contener ademas el PPID. Este dato referencia al PID del proceso padre dentro del BCP, de tal forma que desde el propio BCP se pueden identificar todos los procesos que sin hijos de otro, siempre y cuando tengan el mismo PPID.
En procesos convencionales, este dato en el BCP no existirá. 
5. Algoritmos de planificacion
Gracias a los algoritmos de planificación, especialmente en los SO multiproceso, la CPU se encarga de dar tiempos de ejecución a cada proceso segun el tipo de algoritmo y la prioridad de cada proceso.
Hay 2 tipos de algoritmos en windows y linux:
Algoritmo de rueda: Asigna rotativamente tiempos de ejecución a los distintos procesos. Denominado también Round-Robin y en el ocurre el tiempo de ejecución de los procesos es la misma y de forma secuencial. A cada uno se le da un quantum o intervalo de tiempo en ejecución). La selección entre los procesos se realiza mediante una cola llamada FIFO que trata de que el primero que entra el primero que sale. Es el que mas se utiliza actualmente.
Algoritmo FIFO o FCFS: Los ciclos de UCP dados a cada proceso se les da un orden en FIFO. Al primer proceso que llega se le asigna tiempos o ciclos de UCP hasta que termina completamente. A continuación  se ejecuta completo el siguiente proceso que hay en la cola FIFO y así hasta el ultimo proceso. Este proceso se utiliza sobre todo para las colas de impresión.
6. Memoria RAM y memoria virtual
El ordenador cuenta con la memoria central, pero esta limitada y a veces es insuficiente.
Al principio se adopto la forma de separar el programa en capas. Cada una se iva ejecutando según fuera necesario. Primero se pasaría parte del programa del disco duro a la memoria, y cuando fuera necesario usar otra parte se iría de nuevo al disco para cargarla a la memoria principal.
Fotheringam diseño el conocido método de memoria virtual. Penso en la posibilidad de que al meter al programa en memoria, fuera muy grande y creo una técnica solo la parte del programa que se estaba ejecutando estaría hay el resto estaría en el disco.
Considera el espacio libre de disco como si se tratase de memoria RAM , pero solo se carga en esta la parte que se esta ejecutando.
Si se necesita usar otra parte del programa la actual pasara al disco y la que se necesita a la RAM asi siempre queda mas espacio, esto viene muy bien para los multitarea.
Cuando se cargan muchos procesos a la vez el ordenador se realentiza puesto que tiene que pasar mucha información constantemente del disco a la RAM y al contrario.
Los sistemas multiusuario gestionan muy bien la memoria virtual.
Para realizar esta gestión dispone de un mínimo de 2,5% de la memoria RAM y un máximo de 5%.
Respecto a windows surge un problema en diferencia con linux y es que la fragmentación de archivos se almacena en la zona de intercambio. Esto implica que el equipo sea cada vez mas lento puesto que la información esta fragmentada y cuesta mas acceder a ellos.
7. Intercambio
En los SO monousuario y monoproceso, la gestión de memoria era muy simple ya que estas tenían poca capacidad.
En los sistemas multiusuario es una de las funciones mas importantes del SO.
La parte que administra la memoria es el Administrador de memoria, que lleva un registro de las partes de la memoria que se están utilizando y de las que no. Así guarda espacio en la memoria para los nuevos procesos y libera a los que han acabado. Ademas gestiona también  el intercambio de datos entre memoria y disco, siempre y cuando los procesos sean tan grandes que no quepan de una sola vez en memoria.
La memoria tiene que ser gestionada y controlada por el SO de tal manera que cada proceso utilice su espacio en memoria sin afectar a otros donde puede a ver datos...
Para gestionar la memoria en sistemas operativos multitarea, esta se divide en particiones fijas.
El planificador cuenta los requerimientos de memoria de cada proceso y las particiones de memoria disponibles. Estos requerimientos de uso de memoria se almacena en la BCP.
La dificultad de las particiones fijas es la forma correcta de seleccionar los tamaños.
Con un conjunto dinámico de procesos que están ejecutándose no se puede encontrar las particiones en memoria adecuadas. Por eso se dispone de otras que son las particiones variables.
Ahora se necesita un registro con información de las particiones libres y ocupadas, que sea eficiente en el tiempo de asignación tanto en aprovechamiento de la memoria. Aun con todo esto sigue un problema en la fragmentacion externa. Una de las soluciones es permitir que los procesos puedan utilizar memoria no contigua, lo que se consigue con ciertos métodos como la de paginación en esta hay un mecanismo de traducción de las direcciones lógicas a las físicas mediante una tabla de paginas.
La tabla de paginas presenta dos cuestiones: El tamaño (puede ser muy grande), y el tiempo de asignación (que debe de ser corto).
Segmentación: la RAM se divide en espacios que no tienen que ser del mismo tamaño y que estarán en función del tamaño de los procesos que se vayan a ejecutar.
Memoria virtual: En los sistemas operativos actuales se puede configurar el área de intercambio, incluso se puede indicar en que disco se puede realizar el intercambio. El gran inconveniente de modificar a la ligera lo que el sistema administra automáticamente, es que podemos provocar que el rendimiento sea mas lento.
8. paginación, segmentación y swapping
Son técnicas de gestión de memoria, permiten ejecutar programas de mayor tamaño a los de la memoria RAM usando el disco duro como ampliación el inconveniente de esto es que baja el rendimiento.
8.1 paginación
Es una técnica que consiste en dividir la memoria interna o RAM en zonas iguales llamadas frames, y los programas en partes del mismo tamaño denominadas paginas.
El tamaño de los frames se diseña por hardware.
Si utilizamos multiprogramacion y solo hay un trabajo, este tendrá todos los frames necesarios para el. Esta asignación la realiza el SO.
Mediante la tabla de paginas, la UCP asigna las direcciones físicas de los frames a las paginas en las que se ha dividido el programa. La asignación de los frames no tiene que ser necesariamente consecutiva. Un proceso se puede ubicar en memoria interna en frames no contiguos, ya que estos pueden estar ocupados por otros procesos.
La técnica de paginación es similar a la de la memoria virtual.
El sistema operativo DOS utiliza una técnica parecida a la paginación.
La paginación es una técnica de reasignación o redireccionamiento dinámico  con la consideración de que la tabla de paginas se puede almacenar en registros especiales destinados a tal efecto o en una parte de la propia memoria.
La transformación de las direcciones lógicas en físicas la realiza la unidad de administración de memoria.
8.2 Segmentación
Cada segmento puede variar desde 0 hasta un máximo permitido.
La longitud de un segmento puede variar según las necesidades del programa.
Puede organizar la memoria en bloques concretos y tener partes de ella destinadas a almacenar las estructuras de datos, que pueden crecer o menguar según las necesidades del usuario o del programa. Para ello se utilizaran las pilas de memoria o stacks, en las que gestionan las estructuras de datos necesarias.
La paginación difiere de la segmentación en que las paginas son de tamaño fijo y los segmentos no.
8.3 Swapping
Es una técnica parecida a la de memoria virtual. Cuando varios usuarios están ejecutando procesos en un mismo ordenador, este se ve obligado a cargarlos en RAM. Según el estado en el que se encuentre el proceso de cada usuario, la memoria se ira liberando de su proceso y pasara a la zona swap mediante la técnica llamada swap-out. De esta forma, la memoria interna queda liberada para que en ella se pueda almacenar otro proceso del mismo usuario o de otro.
La diferencia entre la gestión de memoria virtual y el swapping es que, mediante la primera, puede llegar a ocurrir que el disco este tan lleno que la gestión sea difícil o imposible, ya que el espacio destinado al intercambio suele ser espacio del disco duro en el que esta instalado tanto el SO como el software de aplicaciones y los datos del usuario.
En el swapping no puede ocurrir esto, ya que esta zona siempre estará reservada y disponible para el intercambio de programas con la memoria principal.
9. Programas reubicables, reentrantes, residentes y reutilizables
Según como, donde y cuando se ubiquen en memoria:
- A. Reubicables
Son aquellos que, una vez cargados en RAM para ejecutarse, pueden variar de situación  ya que la parte de RAM que ocupan puede ser necesaria para ubicar otro proceso. Estos procesos o programas cambian de posición cuando se esta realizando una operación sobre el ordenador.
- B. Reentrantes
Son aquellos programas que, si no se están ejecutando, dejan la memoria libre para otros procesos. Estos procesos, cuando se liberan, se suelen almacenar temporalmente en el disco duro.
- C. Residentes
Son aquellos que, una vez cargados en memoria, permanecerán en ella hasta que se apague el ordenador. No cambian su ubicación en ningún momento. Suelen ser programas de antivirus, de análisis de sistema, de monitorizacion, etc. Los mas comunes son los centinelas, que incorporan los antivirus para que analicen continuamente lo que se carga en memoria.
La ubicación de estos programas dependerá  fundamentalmente, del SO y de la propia aplicacion que lanze el programa residente.
- D. Reutilizables
Son programas que normalmente son utilizados por varios usuarios a la vez en memoria, independientemente del numero de usuarios que lo vayan a usar.
10. Gestión de entrada/salida: tipos de periféricos
Una de las funciones mas importantes de un SO es el control de los periféricos de entrada/salida del ordenador. El sistema operativo se encarga de enviar ordenes, determinar el dispositivo que necesita la atención del procesador.
Hay una clasificación según como sean los periféricos para la gestión de información que es:
- Periférico tipo bloque: Son aquellos en los que la información que se maneja es de tamaño fijo. La información entra o sale de memoria en forma de bloque.
- Periférico tipo carácter: Son los que sirven para introducir datos dentro de la memoria del ordenador en forma de caracteres, sin ningún orden concreto, por ejemplo los teclados.
Cada periférico esta compuesto por un componente mecánico y por otro, u otros, componentes electrónicos.
El SO se encarga de acceder a la información de la memoria principal, extraerla en forma de impulsos eléctricos y enviarla a los diferentes dispositivos periféricos  Si la información se envía a un disco duro, los impulsos se transformaran en señales magnéticas; si se envía a una impresora, se transformaran en caracteres.
11. Comunicación con el sistema: interfaces de usuario
Hay 2 tipos de interfaces y son:
Interfaz de texto: Se representa mediante cadenas de caracteres.
Interfaz gráfica: Comunicación ente maquina y ordenador tipo gráfico  ahora es lo habitual. En esta interfaz es imprescindible el ratón. La información se muestra en pantallas llamadas ventanas, en ellas aparece la información para enviar o recibir información.
12. Clasificación de los periféricos
- De entrada: Son los que introducen la información, la información va desde ellos hasta la memoria y el resto de componentes internos para ser procesada.
- De salida: Son los que extraen la información  desde la memoria y resto de componentes internos del ordenado, y mostrar los datos.
- De entrada/salida: Son los que se utilizan para introducir o extraer datos desde y hacia el ordenado. En ellos se puede escribir información al igual que leerla ( Salida y entrada). Hay otros dentro de este grupo como puede ser un monitor táctil.
No se debe confundir periféricos con soportes, los periféricos son los puertos donde se introducen los soportes que son los que sirven para extraer y meter la información. El soporte es la parte extraible.
Los soportes tienen algunas características como que son reutilizables, tienen mucha capacidad, son económicos y no son volátiles.
A. Raton y teclado
Son los periféricos de entrada por excelencia.
1- Crtl: Combinación de teclas
2- Shift: Se utiliza para escribir letras en mayúsculas o el símbolo de la parte superior del resto de teclas.
3- Caps Lock: Se utiliza para dejar activada la escritura en mayúsculas.
4- Tab: Se utiliza para tabulaciones en procesadores de texto y movimiento en campos de entrada de formularios.
5- Esc: Se utiliza para finalizar
6- Teclas de funcion (F1 a F12): Es para la abrebiacion de acciones.
7- Retroceso: Se utiliza para borrar el carácter de la izquierda.
8- Panel identificador: Indica si esta activado el teclado numérico o las mayúsculas.
9- Teclado numérico: sirve solo para los números
10- Teclado de edición: Se utiliza para escribir, juegos y todo aquello que necesite de letras.
11- Enter: Sirve para confirmar acciones, aplicaciones ofimáticas y relacionado con espacios entre lineas.
12- Espaciador: Se utiliza para separar caracteres (espacios en blanco).
13- Alt: Se utiliza en combinación de otras teclas y realiza determinadas acciones.

B. Monitor
Es un periférico de salida. Puede ser en B/N o en color, sus presentaciones dependen de la tarjeta gráfica y de la memoria apropiada que incorpore el fabricante, de la frecuencia de refresco, de las pulgadas etc...
C. Impresora
Es un periférico de salida, que permite la salida de papel con la información deseada.
D. Otros periféricos
- Escaner: Hace posible que una imagen o documento, se haga datos.
- Módem: Es de E/S permite la comunicación remota con otros equipos.
- Unidad de disquete: Son de E/S y almacena datos o los puedes extraer al pc.
- Unidad de disco duro: Son de alta capacidad y alta velocidad, utilizadas para instalar programas, almacenar fotos..., y también se encuentra instalado el SO
- Tableta digitalizadora y lápiz óptico: Se utilizan para hacer gráficos y esquemas.
- DVD: Periférico de entrada. Para acceder a su información es mediante un lector láser  Su capacidad es de 4GB o superior.
- Blue-ray: Es similar a las anteriores pero con una capacidad de unos 50GB.
- HDVD: Similar al DVD pero con capacidad de hasta 30GB
13. Gestión de la información
Cuando trabajamos con SO multiusuario, la gestión de datos que se hace dentro del ordenador y su ubicación en memoria y los soportes de almacenamiento externo, pueden plantear algunos problemas.
En cuanto almacenamiento en soportes externos, la gestión que haga el SO tiene que responder ante varias características  Se almacenara gran cantidad de información  se almacenara de forma correcta y los programas podrán acceder a ella.
La información tiene que almacenarse de forma permanente en los soportes externos a través de archivos. Cada SO utiliza su propio sistema de archivos. El SO gestiona cada archivo almacenado en el soporte.
Veremos en cada SO cual es su sistema de archivos o File System. Cada uno de ellos hace una gestión diferente del espacio de almacenamiento, lo cual dependerá de si el sistema es multiusuario o monousuario, multitarea o monotarea, multiprocesador o monoprocesador etc...
- Archivos regulares o estandares: Son los que contienen información del usuario, programas, documentos, textos gráficos etc...
- Directorios: Son archivos que contienen referencias a otros archivos regulares o a otros directorios.
- Archivos especiales: Los que no son de ninguno de los otros.


martes, 30 de octubre de 2012

Concepto de sistema operativo. Elementos y estructura

1. Introducción a los sistemas operativos
El Sistema operativo es el software básico del ordenador. Este software gestiona todos los recursos hardware del sistema informático y proporciona la base para la creación y ejecución del software de aplicación.
Podemos definir el SO como un conjunto de programas, servicios y funciones que gestionan y coordinan el funcionamiento del hardware y del software. Para que el hardware tenga sentido en un ordenador, este tendrá que funcionar. Gracias al SO el hardware se reconoce y identifica al SO y el sistema informático empieza a funcionar. Gracias a los programas y aplicaciones que contiene el SO, nosotros podremos realizar determinadas funciones. Con el software completamos las necesidades del sistema informático.
El SO ofrece al usuario la forma de comunicarse con el ordenador ya sea a través de una interfaz de texto como podría ser el teclado, o mediante una interfaz gráfica como podrían ser la pantalla táctil y el ratón. El SO es lo que utilizamos para realizar las funciones en el ordenador.
El SO es el que hace todo el trabajo dentro del ordenador, nos hace transparente al hardware. Lo usamos y no nos tenemos que preocupar de administrarlo gracias a una interfaz de fácil uso.
Se puede hacer una primera clasificación de los sistemas operativos teniendo en cuenta la gestión que hacen del software y el hardware, y la forma en que los usuarios lo pueden usar:
- Sistemas operativos monousuarios (SOMO)
- Sistemas operativos multiusuarios (SOMU)
- Sistemas operativos en red
En los SOMO, los recursos hardware y software están a disponibles para un solo usuario.
En los SOMU, varios usuarios pueden utilizar los recursos de software y hardware de un mismo ordenador.
Actualmente los SOMU han dado paso a los nuevos Sistemas operativos en red (SORED) en los que un ordenador puede compartir con otro que este conectado en la misma red.
En los SOMO, la ejecución de un programa no implica demasiadas dificultades. El programa se mete por el teclado o se carga desde una unidad de almacenamiento externo. Este programa se mete en memoria ( Lo realiza el UCP).  Una vez esta aquí Primero actúa la Unidad de control y si hace falta la Unidad aritmético-lógica.
En los SOMU existe una sola UCP, La del ordenador principal. A este ordenador estan conectados teclados y monitores a forma de terminales, es decir,  no tienen un ordenador propiamente dicho, sino que tienen un teclado y un monitor para realizar el trabajo.
En estos, la única UCP existente realiza todos los trabajos. Existe, pues, un solo procesador o varios, un solo conjunto de Memorias RAM, uno o varios discos duros dentro del mismo equipo. En este tipo de SO el SO trabaja mucho mas ya que tiene que obtener muchas respuestas no una sola. La respuesta que se obtiene para la ejecución de las instrucciones del programa que ha lanzado sera superior a la que obtendría si estuviera en un SOMO.
De esta forma, todo se procesa en el ordenador principal. Primero se ejecutan unas instrucciones que manda el primer programa. Después queda detenido para que dar tiempo a la UCP al proceso que lanza otro usuario. La UCP no ejecuta dos instrucciones a la vez. El intervalo de tiempo de la ejecución es tan corto, que los usuarios no lo notan. Cuantos mas procesos mas lento y mas se aprecia su lentitud.
En los SORED, cada usuario tiene su propio ordenador, normalmente monousuario. Cada ordenador establecerá conexión con el ordenador principal del SORED, en este caso la ejecución de los programas es distinta puesto que se dispone de mas bloques, mas procesadores... ( Tantos como tenga cada ordenador).
Cuando los usuarios indican al ordenador principal, que es el que tiene el SORED, que van a ejecutar un programa, el ordenador principal puede actuar de varias formas: cargar todo el peso del programa en el ordenador del usuario que ha abierto el programa. De esta manera el ordenador principal solo hace de servidor de aplicaciones, pero ni su memoria, ni su procesador actúan  Si solicitan la ejecución de un programa a su ordenador cliente, y todo el proceso correrá a cargo del SO de cada usuario, su procesador y su memoria. En la mayoría de los casos estarán físicamente puestos en el servidor y no en los clientes.
Entre los diversos tipos de sistemas operativos también están los que cargan con casi todo el peso de las aplicaciones. Así  cuando un usuario pide la ejecución de un programa, el ordenador principal sera el que se encargue de ejecutarlo completamente. El cliente solo necesita un pequeño sistema operativo llamado SO cliente para poder trabajar con la aplicación o programa deseado. Cuando son distintos usuarios el servidor trabaja duramente para poner los programas en posiciones de memoria distintas.
El SO es el que controla todo y hace de intermediario entre hardware y software
2. Evolución histórica de los sistemas operativos
Los primeros SO se denominan monolíticos. La característica fundamental es que su software básico era prácticamente imposible de modificar una vez instalado en el sistema informático.
El hardware y el software evolucionan a la vez, nunca separados
La primera computadora fue diseñada por Charles Babbage. Este matemático ya tenia claro que para tratar automáticamente la información era: ENTRADA-PROCESO-SALIDA.
Posteriormente, George Boole elaboro la teoría de la lógica matemática y el álgebra de Boole. Gracias a este se empezó a pensar en la elaboración de procesos o programas.
- Primera generación ( 1945-1955) Se utilizaban las Válvulas de vació. Estas computadoras eran maquinas programadas en lenguaje de maquina puro. Eran muy grandes, consumían mucha energía y muy lentas. Las operaciones eran meramente cálculos matemáticos
Imagen de válvula de vació:











- Segunda generación (1955-1965): Aparición de los transistores. Las computadoras se hacen mas pequeñas, baratas, consumen menos y despiden menos calor. En esta generación aparece lo que se define por procesamiento por lotes, proceso que implica 3 fases:
_ Introducción de datos a procesar en un componente hardware.
_ Llevar físicamente el soporte, cargado con los datos.
_ El soporte en el que se encuentran los resultados se llevan a otro dispositivo físico.
Ejemplo gráfico:









- Tercera generación (1965-1980): Aparecen los circuitos integrados. Se vuelve a reducir el tamaño y su consumo de energía, son mas baratos y mas rápidos y generan menos calor. Destaca el IBM 360 que era capaz de hacer cualquier operación ya fuera aritmética o lógica  Ya se diseña otro tipo de hardware y software que permite la ejecución de varios procesos a la vez.
- Cuarta generación (1980 hasta hoy): Aparecen los ordenadores personales  Su montaje se hace mas complicado debido a técnicas de integración y miniaturizacion de sus componentes hardware. Aparecen las memorias semiconductoras, dispositivos de almacenamiento externos reducidos...
3. Recursos. Funciones del sistema operativo
El fin del SO es coordinar la utilización que se hace del hardware que depende de los programas o aplicaciones que se están utilizando. Los programas habitualmente los elegimos los usuarios, pero en ocasiones es el propio SO.
La comunicación entre distintos niveles las hace posible las interfaces. Para hacer esto el SO necesita los servicios.
Servicios: Son aplicaciones que generalmente se ejecutan en un 2º plano. Estos incluyen ciertas funciones para poder utilizar los recursos del SO. Las aplicaciones son tipo: cliente-servidor; servidores web; servidores de base de datos y aplicaciones basadas en servidores a forma local o a través de una red.
Estos servicios se utilizan para:
_ Crear programas
_ Ejecutar esos programas
_ Acceder a los dispositivos de entrada y salida
_ Gestión de archivos
_ Acceso a la información
_ Supervisión y solución de problemas
_ Suministrar información estadística
La mayoría de estos servicios van instalados en el SO.
Estos son imprescindibles para el funcionamiento del SO y sus aplicaciones.
A estos servicios se les llama proceso en 2º plano o procesos en back-ground, en linux se les llama demonios.
4.1 Memoria
La parte del SO que se encarga de la memoria es el Administrador de memoria. Su función es clara: llevar en un registro las partes de memoria que se utilizan y las que no y libera el espacio de los procesos finalizados. También gestiona el intercambio de datos entre memoria y disco, solo si son muy grandes y no entran solo en una. La gestión de memoria es muy importante en los SO multitarea, ya que se trabaja con varios procesos a la vez.
La gestión de memoria en los SO monoproceso es sencilla, pero en los SO multitarea se complica ya que tiene que tener varios procesos simultáneamente en memoria.
La primera opción es dividir la memoria en particiones fijas. Para ello el SO dispone de una cola de procesos que solicitan entrar en memoria.
Vinculado con la multitarea esta el concepto de intercambio. Los procesos que están en espera pueden llevarse al disco y dejar libre el espacio para programas en ejecución.
La mayor dificultad en las particiones fijas esta en la correcta selección de tamaño de estas.
Con un conjunto de procesos dinámicos no es posible encontrar bien las particiones por eso se dispone de particiones variable. El problema que se plantea ahora es llevar un registro de las particiones libres y ocupadas que sea eficiente, tanto en tiempo como en aprovechamiento
4.2 Proceso y procesador
Un proceso, o tarea, se puede definir como programa en ejecución  Los procesos en un SO tienen las siguientes características:
_ Un proceso para empezar a ejecutarse tiene que estar en la memoria y tener los recursos que necesite
_ Cada proceso esta protegido del resto de procesos
_ Los procesos pueden ser del usuario y estarían en modo usuario o al SO que se ejecutarían en modo kernel o modo privilegio
_ Cada proceso tendrá una estructura de datos llamada bloque de control de procesos (BCP)
_ Los procesos pueden comunicarse entre si, sincronizarse y participar entre ellos.
A cada proceso se le asigna un espacio de direcciones lógicas en memoria. Este es igual al máximo que nuestro SO sea capaz de gestionar y aquí es donde entra la memoria virtual
Los procesos se dividen en trozos de tamaño igualatorio llamados frames.
Cuando se ejecuta el proceso, si la UCP quiere atender una parte que no esta en memoria interna o real ira a buscarlo a la memoria virtual.
Los procesos se pueden detener, parar, bloquear entre otras cosas.
Un programa no es un proceso se convierte en proceso cuando entra en ejecución.
Los procesos se ''pelean'' por los recursos hardware y aveces por los de software.
El reparto de los recursos del sistema entre los distintos procesos y su ejecución concurrente se conoce como multiprogramacion.
Cuantas mas instrucciones sea capaz de procesar un procesador, mayor velocidad del sistema, ya que tardan menos que la UCP.
4.3 Gestión de entrada/salida
Una de las tareas mas importantes del ordenador, y en particular de la unidad central de proceso, es relacionar y comunicar los periféricos.
Esta comunicación se produce en la placa base en el gestor de entrada/salida. Este componente, integrado en los circuitos de la placa base, se denomina chipset.
Cuando conectamos los periféricos a la placa base y les suministramos corriente, se produce la comunicación.
Un ordenador es dirigido y coordinado. En los ordenadores, esto se hace en la UCP mediante un sistema de buses de comunicación que la conecta con todos los elementos del ordenador.
Las interfaces comunican software y hardware pueden ser:
Interfaz tipo texto: Si el SO es de tipo texto, todo lo que nosotros introduzcamos o las respuestas que nos de el SO se verán mediante cadenas de caracteres.
- Interfaz tipo gráfica: La mayoría de los SO utilizan medios de comunicación entre ordenador y maquina tipo gráfico. En este tipo de interfaz se necesita un ratón o pantalla táctil.
- Interfaz mixta: A día de hoy la gran mayoría de ordenadores utilizan esta para poder comunicar al ordenador con nosotros.
5. Arquitectura y componentes
Si dejamos al margen los antiguos sistemas operativos monolítico, actualmente los SO se organizan en capas.
Un SO esta estructurado en varios niveles o capas, cada uno de los cuales se comunica con otro da igual que sea inferior o superior, para que estén coordinados y cumplan con el objetivo del SO.
Estos SO pueden funcionar en varias arquitecturas.
Los nuevos SO se pueden montar en plataformas Intel, AMD, MIPS, Alpha..., Sin que los que los manejan noten cambios, excepto en ocasiones.
Una maquina virtual es: Un archivo o conjunto de archivos. Son copias exactas del hardware real que gestiona el propio SO.
Una vez que el usuario termina de ejecutar el programa es cuando se produce la interacción real con el hardware.
6. Modos de explotación del sistema
Las formas de explotación de un SO responden a la forma en la que el usuario emplea los recursos hardware y software que componen el sistema informático. Explotar un SO es utilizarlo.
Si hablamos de SOMO, como solamente se esta ejecutando un programa, la cuestión no tiene mas importancia. Pero si estamos con un SOMU puede haber varios programas a la vez.
Para poder hablar de como se explota un SO habrá que tener en cuenta también las necesidades de los usuarios que los van a utilizar, y por supuesto, todo esta relacionado con el hardware en el que esta montado el SO.
A. Proceso en lotes.
Este sistema de explotación se empezó a utilizar en la 2ª generación
B. Proceso en tiempo real
Este tipo de explotación del ordenador es parecida a la anterior. La diferencia es que nosotros introducimos los datos y lanzamos el programa para el procesamiento de datos introducidos y el que obtiene la información procesada, todo esto en un mismo sistema informático, en muy poco tiempo.
C. Según el numero de usuarios
- Monousuario: Cuando solo un usuario trabaja en el ordenador
- Multiusuario: Varios usuarios pueden usar los recursos del sistema a la vez.
Este tipo de sistemas operativos son caracterizados porque varios usuarios podrán o no tener acceso a algunas cosas que otros si y viceversa.
D. Según el numero de procesos
Esta clasificación se hace atendiendo al numero de programas que puede ejecutar simultaneamente el ordenador o sistema informático.
Clasificación general de los SO según los programas o procesos que ejecutan a la vez:
- Monoprogramacion o monotarea: En este caso, el sistema solamente puede ejecutar un programa o proceso a la vez. Así los recursos del sistema serán dedicados al programa hasta que acabe su ejecución.
El que un SO sea monotarea no implica que pueda ser multiusuario, varios usuarios pueden intentar ejecutar sus programas en el mismo ordenador, pero de forma sucesiva.
- Multiprogramacion o multitarea: Este tipo de SO puede correr varios programas o procesos simultáneamente.
De esta forma, todos los procesos necesitaran individualmente mas tiempo para ejecutarse. Son SO multitarea.
E. Según el numero de procesadores del sistema informático
Esta clasificacion depende de los procesadores que el ordenador sea capaz de gestionar
- Monoprocesador: Consta de 1 solo procesador. Todos los trabajos que realizados pasaran por el.
- Multiprocesador: El ordenador cuenta con 2 o mas procesadores. Así  determinados SO pueden aprovechar las ventajas de este hardware.
Hay 2 formas de utilizar los diferentes procesadores por parte del SO:
a. Multiproceso simetrico (SMP): El SO utilizara la potencia de los procesadores de igual forma.
b. Multiproceso asimetrico (AMP): El SO reparte las tareas que esta haciendo a cada proceso con los que cuenta el SO.
Con estas 2 técnicas lo que se consigue, en cualquier casi, es que el tiempo de respuesta de la ejecución de varios programas en un mismo ordenador sea similar para todos ellos.
También se conoce el pseudomultitarea: Solamente afecta al SO de 2 windows (95 y 98) y Me, porque están capacitados para tener en su memoria cargados mas de un proceso y estar ejecutando aparentemente mas de 1.
El usuario cree que esta trabajando con mas de un programa a la vez, pasa algo parecido. Pero el procesador esta ejecutando secuencialmente y poco a poco cada uno de los procesos lanzados a la ejecución.
7. Sistemas operativos mas usuales.
La mayoría de los SO, a partir de los 32 bits, son abiertos y segmentados. Esto permite que sean fáciles de modificar, ya que los programas que lo componen están separados en bloques.
Los SO actuales se articulan en una estructura determinada por niveles. Cada nivel o parte del SO se encarga de una función. Así si se modifica solo afecta a parte del programa no a todo el SO.
Los SO por niveles, también llamados por capas, se encargan de control y ejecución de programas, gestión y control de usuarios, periféricos, memoria etc...
La ultima generación de sistemas operativos, a partir de los 32 bits, son aquellos que se denominan sistemas operativos de maquina virtual. A diferencia de los anteriores, estos tienen un núcleo que les permite emular el hardware.
Ya existen SO de 64 bits lo que permite que puedan manejar mas memoria RAM que los 4 GB que solo pueden usar los de 32 bits. Los procesos se ejecutan en estos últimos SO también se ejecutan en zonas independientes de memoria, lo que les da mucha estabilidad.

viernes, 12 de octubre de 2012

Resumen del tema 1 De sistemas operativos monopuestos

1. El sistema informático: Software y hardware

Se dice de ordenador a la máquina compuesta de elementos físicos (Hardware), que es capaz de realizar una gran variedad de trabajos a gran velocidad y con gran precisión.
Formado por una cantidad de componentes electrónicos que no son capaces de realizar muchas funciones. Necesitan de otros componentes no físicos que los pongan en funcionamiento; Nos referimos a los programas (Software). Servirán para procesar la información.
Instrucciones, ordenadas y adecuadas componen a un programa. Varios programas crean una aplicación informática .
Un programa no funciona por si solo, faltaria el SO (Sistema Operativo).
El SO es un componente software de un sistema informático capaz de hacer que los programas procesen la información sobre los componentes electrónicos de un ordenador o sistema informático (Hardware)


 EJ:

Cuando un programa esta compuesto por varios programas se le denomina aplicacion informática, pero una aplicacion informática también puede estar formada por un programa, en este caso se le llamaría programa.
Cada programa que forma una aplicacion informática tiene una finalidad concreta.
Una aplicacion es un macroprograma que consta de varios programas independientes aunque interrelacionados; queremos decir, programas que funcionan de forma autónoma, pero que pueden necesitar información procesada por otros programas dentro del macroprograma.
Instrucciones, programas y aplicaciones informáticas, en general, quedan definidos como software.
Un sistema informático es el conjunto de elementos físicos que son necesarios para la explotacion de las aplicaciones informáticas o software

Firmware: es la parte intangible (software) de componentes del hardware. Que están programadas en las memorias ROM. No es facilmente modificable. Una vez que se introduce o se graba en un componente hardware, queda practicamente invariable durante el tiempo que dure el ordenador
EJ:

2. Componentes software: sistema operativo y aplicaciones

El software se compone de dos partes:
- Software básico
- Software de aplicaciones
Se define como software básico a la parte del software sin la cual el ordenador no puede funcionar. También se le llama sistema operativo.
El software de aplicaciones es la parte del software que sirve para procesar la información de forma personalizad. Lo contienen programas y datos. Los programas dejan editar textos entre otras cosas.
Otra clasificación del software es:
- El estándar
- Software a medida
Estándar: Es el que podemos encontrar en el mercado, queremos decir es el tipo que viene prediseñado.
Software a medida: Es aquel que personalizan para las necesidades de un usuario algo mas entendido

3. Componentes físicos: el hardware

1- Unidad central de proceso (UCP). Constituido por:
    * Unidad aritmético-lógica (UAL)
    * Unidad de control (UC)
2- Memoria central (MC) o RAM 
3- Controladores
4- Unidad de Entrada/ Salida (E/S)
5- Buses 
6- Unidades periféricas o periféricos de Entrada/ Salida

3.1 Unidad central de proceso. Funciones, componentes, tipos y características
 La UCP también llamada procesador, se encarga del control y ejecutamiento de las operaciones que se ejecutan dentro del ordenador con el fin del tratamiento automático de la información.
Esta compuesto por la UC y la UAL, y su propia memoria que no es la RAM. El procesador es como el cerebro del ordenador y controla todo.
El procesador consta de 2 partes: 
- Unidad de control (UC) 
- Unidad aritmetico-logica (UAL)
El procesador gestiona lo que hay en la memoria desde o hacia los perifericos debido a la unidad de entrada salida, buses y controladores del sistema
 A. Unidad de Control
La unidad de control o UC es la parte pensante del ordenador; se encarga del gobierno y funcionamiento de los aparatos que la componen. Su tarea fundamental es recibir informacion para interpretarla y procesarla.
Se encarga de traer la memoria (RAM) las instrucciones necesarias para la ejecucion de los programas y el procesamiento de los datos. Estas instrucciones y datos se quitan de los soportes de almacenamiento externo. La UC interpreta y ejecuta las instrucciones en orden para que se procesen en el momento justo y bien. La UC dispone de algunos aliados, pequeños espacios de almacenamiento que son su esencia y se denominan registros.



1- Registro de instruccion: se encarga de guardar la instruccion que se esta ejecutando
2- Registro contador de programas: tiene la direccion de memoria de la siguiente instruccion a ejecutar
3- Controlador y decodificador: se encarga de interpretar la instruccion para su posterior proceso. Extrae el codigo de operacion de la instruccion en uso
4- Secuenciador: genera microordenes para ejecutar la instruccion
5- Reloj: da una sucesion de impulsos electricos a intervalos constantes

  B. Unidad Aritmetico-logica (UAL)
La unidad aritmetico-logica o UAL es la parte de la UCP encargada de realizar operaciones aritmeticas y logicas sobre la informacion.
Los elementos mas importantes son: 

1- Operacional o Circuito operacional: Realiza las operaciones con los datos de los registros de entrada
2- Registros de entrada: Contiene los operandos de la operacion
3- Acumulador: Almacena los resultados de las operaciones
4- Registro de estado: Registra las condiciones de la operacion anterior

 3.2. La memoria. Funciones, tipos y caracteristicas
Memorias de almacenamiento externo: Son soportes que sirven para almacenar informacion, por ejemplo un disco duro. Se encuentran dentro de la carcasa del ordenador pero se llaman externas para poder diferenciarlas de la Memoria RAM.
Estas memorias son mas lentas que la principal, no son volatiles (La informacion sigue dentro de ellas hasta cuando se quita la corriente electrica).
- Memoria interna: Dentro del ordenador existen memorias que no son consideradas externas son:
*RAM (Random Access Memory): Em ella es posible almacenar y modificar informacion, y es lo que se conoce como memoria principal.
*ROM (Read Only Memory): Es una memoria de solo lectura, cuya informacion no puede ser modificada y sirve para iniciar el sistema informatico.
La memoria interna, principal o central (MC) se encuentra dentro de la carcasa del ordenador.
  
A. Memoria RAM 
Es un componente necesario para que se pueda procesar la informacion. Casi todo se procesa dentro del ordenador pero tarde o temprano pasa por la memoria central



1- Registro de direcciones: Contiene la posicion de memoria a la que se va a acceder
2- Registro de intercambios: Recibe los datos en operaciones de lectura y almacena los datos en operaciones de escritura
3- Selector de memoria: Se activa cada vez que hay que leer o escribir conectando la celda de memoria con el registro de intercambio
4- Señales de control: Indica si una operacion es de lectura o escritura
 La memoria central esta compuesta por componentes biestables capaces de almacenar informacion en sistema binario (0 y 1) recibe el nombre de bit.
En la RAM tienen que estar fisicamente ubicados los programas y los datos que se tienen que procesar.
La Memoria cache no son RAM propiamente dichas, son otro tipo de memorias internas que almacenan la informacion que se usa con mas frecuencia. La memoria interna almacena la informacion temporalmente, mientras que los soportes de almacenamiento externo la acumulan permanentemente.
Los componentes electronicos que forman la MC son las denomidas celdillas o biestables.
Para almacenar la informacion en la memoria esta se suele referenciar por bloques. Los bloques suelen ser de 8 celdillas, es decir 8 bits y se denominan Byte. 
Estos condensadores, transcurrido cierto tiempo, se van descargando. Para no perder la informacion guardada en la memoria, el propio sistema los recarga. El proceso se conoce como refresco de memoria.
*DRAM (Dynamic RAM): Tipo de memoria RAM. Cuando esta cargada se dice que almacena un BIT a uno. Si esta descargado, el valor del BIT es cero. El refresco de una memoria RAM consiste en recargar nuevamente con energia los condensadores que tienen almacenando un uno para evitar que la informacion se pierda. La memoria DRAM es mas lenta que la memoria SRAM pero es mas barata de fabricar.
*SRAM (Static RAM): Es un tipo de memoria RAM alternativa a la DRAM que no necesita refrescarse: SRAM y DRAM son memorias volátiles. La SRAM suele usarse como Memoria cache
*SDRAM (Synchronous Dynamic RAM): Es una memoria que incorpora la capacidad de la DRAM y la velocidad de la SRAM. Esta memoria es la que incorporan la mayoria de los ordenadores personales.
*DDRAM (Double Data Rate): Memoria de doble recarga o memoria de doble tasa de transferencia. Compuesta por las memorias SDRAM, refresca 2 veces por impulso de reloj. Es una memoria de funcionamiento muy complejo, pero es el doble de rápida que las anteriores.
Una de las características fundamentales de las memorias RAM es la velocidad con la que la información puede almacenarse en ellas. Esta velocidad es mayor cuanto menos se tarde en acceder a la posición de memoria requerida en cada instante. La velocidad se mide en nanosegundos.

B. Memoria ROM
 La memoria ROM o memoria de solo lectura contiene programas especiales que sirven para cargar e iniciar el inicio del ordenador. En ella se encuentra almacenada toda la información referente a los componentes de hardware de los que consta nuestro equipo.
Posteriormente, sera labor del sistema operativo realizar el resto de operaciones para poder empezar a utilizar el ordenador.
El software que integra la ROM forma el BIOS (Basic Input Output System).
El BIOS se encuentra físicamente en varias partes del ordenador. El componente principal esta en la placa base.
Posteriormente, el BIOS se monto en memorias de tipo PROM (Programmable Read Only Memory).
El BIOS es un código que localiza y carga el sistema operativo en la RAM; Es un software elemental instalado en una pequeña ROM de la placa base que permite que este empiece a funcionar.
En la actualidad se utilizan memorias de tipo EPROM ( Erasable Programmable Read Only Memory) que permiten cambiar la configuracion asignada.
Estas memorias no son volatiles, la información no se borra, además viene preinstalada de fabrica.
La CMOS (Complementary Metal Oxide Semiconductor) es una memoria interna que consume muy poca energía eléctrica, lo que la hace perfecta para guardar la información de la BIOS.
La BIOS es la memoria que se utiliza para guardar los datos básicos de hardware y de conflagración y otras informaciones como fecha y hora.
Para que la información que mantiene no se borre, es necesario que la CMOS tenga siempre corriente eléctrica, cuando el ordenador esta apagado coge la energía de una pila o batería que hay en la placa base.
La configuración de la BIOS se puede cambiar si instalamos un disco duro nuevo.
Otro tipo de memoria que no es RAM pero es interna también, es la VRAM que sirve para almacenar las imagenes que se quieren visualizar.
Ahora los ordenadores incorporan la propia tarjeta gráfica llamada SGDRAM ( Super Graphics Dynamic Random Acces Memory) que es una memoria de elevada capacidad aveces demasiado elevada, que tiene gran velocidad y consume poco.
La CDRAM es una clase de memoria que actúa entre el procesador y el periférico correspondiente.
La estructura de la memoria, es siempre igual da igual que sistema operativo la lleve y esta separada en varios niveles.

1- Memoria convencional: De 0 a 640 KB
2- Memoria superior: De 641 KB hasta 1024 KB (1 MB)
3- Memoria extendida: De 1025 KB hasta el limite de la placa base instalada
Han dividido desde un principio la estructura en esas tres partes fundamentales, que cada Sistema Operativo las gestiona de una manera. 
Para acceder a las celdillas de memoria hay que atender a la definicion de Direccion de memoria.
De esta forma, cuando se accede a una direccion de memoria, lo que se hace es acceder a un conjunto de biestables. Cada uno de estos referencia un bit logico.
El direccionamiento es una operacion que se realiza cuando el procesador ejecuta o interpreta una instruccion. Toda instruccion esta compuesta por un codigo de operacion y un operando. El codigo de operacion es la instruccion en si y el operando sera el dato o la informacion que se procesara. Los llamados modos de direccionamiento son las diferentes formas de acceder a los operando en cada instruccion.

1- Direccionamiento inmediato: En la instruccion esta incluido directamente el operando o dato
2- Direccionamiento directo: En la instruccion, el campo del operando contiene la direccion de la memoria donde se encuentra el operando.
3- Direccionamiento indirecto: El campo del operando contiene una direccion de memoria en la que se encuentra la direccion efectiva del operando.
4- Direccionamiento relativo: La direccion del dato que interviene en la instruccion se obtiene sumando a la direccion de la propia instruccion una cantidad fija, que normalmente esta contenida en un registro de tipo especial.

3.3 Unidades de entrada/salida y buses
La unidad de entrada/salida sirve para comunicar el procesador y el resto de componentes internos del ordenador con los perifericos de entrada/salida y las memorias auxiliares.
Al conjunto de UC y UAL se le dnomina procesador. La memoria RAM y la unidad de entrada y salida no forman parte de el.
Otro componente importante del ordenador y relacionado con el procesador es: el bus. Responsable de una correcta interaccion entre los diferentes componentes del ordenador, es el dispositivo de comunicacion principal. En un sentido fisico se puede decir que es un conjunto de lineas que sirve para la transmision de datos entre las partes de un ordenador.
Contiene varias subcategorias:
* Bus de datos: transmite informacion entre la UCP y los perifericos
* Bus de direcciones: Identifica el dispositivo al que va destinada la informacion que se transmite por el bus de datos
* Bus de control o sistema: Organiza y redirige hacia el bus pertinente la informacion que se tiene que transmitir.  
La capacidad operativa del bus depende del propio sistem, de la velocidad de este, y su anchura, manda una cantidad de bits que dependera del procesador del ordenador.
El bus que lleve el equipo establecera si sera mas rapido o mas lento.
1-  Procesador
2- Buses
3- Memoria RAM
Es muy importante la velocidad a la que circulan los bits por el bus. Esto se mide en megahercios y de esto depende el rendimiento total del ordenador. Hay desde los 66 Mhz a mas de 2600Mhz.
La frecuencia del bus queda determinada por los impulsos de reloj. El reloj es, por tanto, el componente que determina la velocidad, ya que a mayor frecuencia en Mhz, mas rapida es la circulacion de bits por las lineas del bus.

3.4 Los perifericos
Los perifericos son dispositivos hardware con los cuales el usuario interactua con el ordenador, almacena o lee datos etc...
Se le dice periferico a los dispositivos que valen para introducir datos y programas del exterior a su memoria central para que los pueda usar y a los que sirven para hacer lo contrario es decir sacar datos o programas de la memoria a central al exterior y los hay que sirven para ambos.
Los perifericos se conectan con el ordenador, mediante puertos,  esta operacion la lleva acabo una parte esencial: la Unidad de entrada/salida. 
3 Tipos de puertos:
- De entrada: Sirven para introducir datos o programas al ordenador
- De salida: sirven para sacar datos o programas del ordenador
- Mixtos: que sirven tanto para introduccir como para extraer 
La informacion se transmite entre perifericos se puede transferir bit a bit o Byte a Byte, siendo estos ultimos los que mas se usan, pueden llegar a transmitir hasta a 1 Gigabit por segundo.
Los hay que transmiten en un sentido (simplex), que transmiten en ambos sentidos pero no a la vez (halfduplex o semiduplex), y los que transmiten en ambos sentidos y a la vez (full duplex o duplex).
Muchos de los perifericos de entrada y salida necesitan una configuracion especial que se hace mediante programas que se instalan en la memoria del ordenador para que el periferico funcione bien a estos programas se les llama drivers o controladores.

4. Componentes logicos: el software
Ya hemos visto el hardware pero para que este funcione necesita del software que sera el que procese la informacion.
La informacion se procesa en un sistema informatico y es de diferentes tipos: Textos...

4.1 Los datos: tipos de datos
Para que el ordenador funcione necesita informacion necesita informacion con la que trabaja. Esta informacion puede ser de varios tipos segun su funcion. El ordenador sirve pata procesar informacion en forma de datos.
El ordenador tambien maneja informacion que servira para procesar esos datos. En este caso concreto nos referimos a programas o aplicaciones informaticas.
Un sistema informatico necesita de un software especial y fundamental. Este software compuesto por porgramas y datos que ponen en funcionamiento las aplicaciones, las cuales procesan sus propios datos. En este caso nos referimos al Sistema Operativo, es el componente software qie sirve para que la informacion sea procesada por las aplicaciones informaticas.
1- Datos de entrada: son los que suministran al ordenador desde los perifericos de entrada
2- Datos intermedios: Son aquellos que se obtienen en la 2ª fase del tratamiento automatico o de la informacion: proceso
3- Datos de salida: Se les denomina resultado, completan el proceso del tratamiento automatico de la informacion.
Hay otra clasificacion segun si varian durante el proceso o no:
*Datos fijos: Son los que permanecen constantes durante todo el proceso del programa
*Datos variables: Son aquellos que si se modifican a lo largo del proceso segun secuencias determinadas condiciones o acciones realizadas por los programas.

4.2 Codificacion alfanumerica
Ya se sabe que los datos, ademas de numericos, pueden ser alfabeticos o alfanumericos. El ordenador trabaja con los 3 tipos de datos.
Los sistemas de codificacion alfanumerica sirven para representar una cantidad determinada de simbolos en binario.
Los sistemas de codificacion alfanumerica mas importantes son:
- ASCII (American Standard Code for Information Interchange): Este sistema utiliza una combinacion de 7 u 8 bits. Es el que mas se utiliza y el que emplea simbolos diferentes.
- EBCDIC (Extended BCD Interchange Code): cada simbolo se representa por una combinacion de 8 bits agrupados en 2 grupos de 4 bits.
- UNICODE: Es un codigo internacional utilizado hoy en dia en la mayoria de los sistemas operativos. Permite que un producto software o pagina web especifica se oriente a multiples plataformas, idiomas o paises sin necesidad de rediseño. Define la codificacion de caracteres.
La mayoria de lideres del mercado , han adoptado la norma UNICODE, permitiendo crear aplicaciones y hardware estandar.

4.3 Medidas de la informacion
El bit es la unidad de informacion mas pequeña. Se representa por 0 o un 1.
El ordenador utiliza siempre el sistema de codificacion binaria para todas sus operaciones.
El Byte se utiliza para representar un caracter alfanumerico.
Actualmente, la capacidad de los discos duros o de las Memorias RAM se miden en MB o GB y la de los discos duros en GB o TB