El concepto de dispositivo periférico se aplica básicamente en la esfera de la computación. Son
instrumentos tecnológicos que interpretan la información y permiten la comunicación entre las personas y las computadoras. Existen los dispositivos periféricos de entrada, de salida de almacenamiento y de comunicación. En cuanto a los primeros, los más conocidos son los siguientes: el teclado, el ratón o mouse, el joystick o palanca de mando, el lápiz o pluma óptica, el scanner o el micrófono. Entre los dispositivos periféricos de salida se encuentran el monitor, la impresora, los altavoces, los plotters o el fax. Los de almacenamiento están relacionados con los procesos de entrada y salida de información (el disco duro, el lector de CD, las cintas magnéticas o la memoria portátil). También existen los dispositivos de comunicación, que son los que permiten la interacción con otras máquinas (la tarjeta de red, el concentrador o el enrutador). Los dispositivos periféricos son una parte de los componentes materiales de un computador (en términos informáticos se utiliza la palabra hardware), los cuales funcionan debido a un programa de tratamiento de la información (conocido como software). El procesamiento de la información se realiza a través de una unidad central (otro elemento físico del ordenador), la cual se proyecta al exterior mediante los dispositivos periféricos. Si utilizamos un símil explicativo, diríamos que la unidad central sería el cerebro de los humanos, el programa estaría formado por nuestras conexiones neuronales y los dispositivos periféricos serían nuestros miembros que reciben órdenes y permiten la ejecución de las acciones (nuestro aparato auditivo es un dispositivo periférico de entrada de información). Esta analogía entre el cerebro y la computadora se empezó a utilizar en los años 40, siendo Alan Turing el primero en hablar de un cerebro electrónico. Si bien el concepto de dispositivo periférico se ha desarrollado en las últimas décadas, existen precedentes en la antigüedad (el ábaco como herramienta de cálculo se considera uno de los primeros). En el Renacimiento, Leonardo da Vinci ideó una máquina que permitía realizar sumas mecánicamente. A partir del siglo XVlll se fueron sucediendo distintas máquinas de calcular, siendo estas máquinas los primeros dispositivos periféricos. En la actualidad la computación se encuentra en su quinta generación y el reto fundamental consiste en dotar a la inteligencia artificial de los mecanismos propios de la inteligencia humana.
Planificación y gestión de los recursos
Una responsabilidad importante de los sistemas operativos es la gestión de varios recursos disponibles para ellos, tales como espacio de la memoria principal, dispositivos de E/S, procesadores, etc. Es necesario que se planifique el uso de estos recursos mediante distintos procesos activos. Cualquier asignación de recursos y política de planificación debe tener en cuenta tres factores: Equitatividad: Por norma general, se desea que todos los procesos que compiten por un determinado recurso, se le conceda un acceso equitativo a dicho recurso. Respuesta diferencial: Por otro lado, el sistema operativo puede necesitar discriminar entre diferentes clases de trabajos con diferentes requisitos de servicio. El sistema operativo debe decidir sobre la asignación y planificación con el objetivo de satisfacer el conjunto total de los requisitos. Además, debe tomar decisiones de forma dinámica. Por ejemplo, si un proceso está esperando para hacer uso de un recurso de E/S, el sistema operativo puede intentar planificar este proceso lo antes posible con el objetivo de dejar libre ese recurso para posteriores demandas por parte de otros procesos. Eficiencia: El sistema operativo debe intentar maximizar la productividad, minimizar los tiempos de respuesta, y en caso de sistemas de tiempo compartido, acomodar tantos usuarios como sea posible. El sistema operativo mantiene un número de colas, cada una de ellas, no es más que una lista de procesos esperando para hacer uso de algún recurso. La cola a corto plazo está compuesta por procesos que se encuentra en memoria principal y están listos para ejecutar, siempre que la CPU esté disponible. Es responsabilidad del planificador a corto plazo o dispatcher, elegir uno de ellos. Una estrategia común es asignar en orden a cada proceso de la cola un intervalo de tiempo o quantum, esta técnica se conoce como round-robin o turno rotatorio. Esta técnica de turno emplea una cola circular. Otra estrategia consiste en asignar niveles de prioridad a los distintos procesos, siendo el planificador el encargado de elegir los procesos en base a su prioridad. La cola a largo plazo es una lista de nuevos trabajos esperando utilizar el procesador. El sistema operativo añade trabajos al sistema transfiriendo un proceso desde la cola a largo plazo hasta la cola a corto plazo. Llegados a este punto, se debe asignar una porción de memoria principal al proceso entrante. El sistema operativo debe estar seguro de que no sobrecarga la memoria o el tiempo de procesador admitiendo demasiados procesos en el sistema. Existe una cola E/S por cada dispositivo E/S. Puede ocurrir, que más de un proceso quiera acceder al mismo dispositivo E/S, en este caso, los procesos aspirantes al recurso, esperarán en la cola propia del dispositivo E/S. Es el sistema operativo, el que determinará finalmente a qué proceso le asigna el dispositivo E/S cuando éste se encuentre disponible. Si ocurre una interrupción, el sistema operativo recibe el control del procesador a través de un manejador de interrupciones. Un proceso puede invocar específicamente un servicio del sistema operativo mediante una llamada al sistema (trap). En este caso, es el manejador de la llamada al sistema el punto de entrada al sistema operativo. Una vez que se maneja la interrupción o la llamada al sistema, se invoca al planificador a corto plazo para que seleccione un proceso para su ejecución.