jueves, 28 de agosto de 2014

1.6 Núcleo

El Núcleo (o kernel) es una colección de módulos de software que se ejecutan en forma privilegiada –lo que significa que tienen acceso pleno a los recursos del sistema. El núcleo normalmente representa sólo una pequeña parte de lo que por lo general se piensa que es todo el sistema operativo, pero es tal vez el código que más se utiliza. Por esta razón, el núcleo reside por lo regular en la memoria principal, mientras que otras partes del sistema operativo son cargadas en la memoria principal sólo cuando se necesitan.

El núcleo de un sistema operativo normalmente el código necesario para realizar las siguientes funciones:

• Manejo de interrupciones.
• Creación y destrucción de procesos.
• Cambio de estado de los procesos.
• Despacho.
• Suspensión y reanudación de procesos.
• Sincronización de procesos.
• Comunicación entre procesos.
• Manipulación de los bloques de control de procesos.
• Apoyo para las actividades de entrada/salida.
• Apoyo para asignación y liberación de memoria.
• Apoyo para el sistema de archivos.
• Apoyo para el mecanismo de llamada y retorno de un procedimiento.
• Apoyo para ciertas funciones de contabilidad del sistema.

El Kernel consiste en la parte principal del código del sistema operativo, el cual se encargan de controlar y administrar los servicios y peticiones de recursos y de hardware con respecto a uno o varios procesos, este se divide en 5 capas:


1.5 Estructura niveles o extractos de diseño

Nivel 1. Gestión de Memoria: Proporciona las facilidades de bajo nivel para la gestión de memoria secundaria necesaria para la ejecución de procesos. 
    Nivel 2. Procesador: Se encarga de activar los cuantums de tiempo para cada uno de los procesos, creando interrupciones de hardware cuando no son respetadas. 
    Nivel 3. Entrada/Salida: Proporciona las facilidades para poder utilizar los dispositivos de E/S requeridos por los procesos. 
    Nivel 4. Información o Aplicación o Intérprete  de Lenguajes: Facilita la comunicación con los lenguajes y el sistema operativo para aceptar las ordenes en cada una de las aplicaciones. Ejecutando un programa el software de este nivel crea el ambiente de trabajo e invoca a los procesos correspondientes. 
    Nivel 5. Control de Archivos: Proporciona la facilidad para el almacenamiento a largo plazo y manipulación de archivos con nombre, va asignando espacio y acceso de datos en memoria. 
El núcleo o kernel realiza diferentes funciones tales como:


  • Manejo de interrupciones.
  • Creación y destrucción de procesos.
  • Cambio de estado de los procesos.
  • Despacho
  • Suspensión y reanudación de procesos.
  • Sincronización de procesos.
  • Comunicación entre procesos.
  • Manipulación de los bloques de control de procesos.
  • Apoyo para las actividades de entrada/salida.
  • Apoyo para asignación y liberación de memoria.
  • Apoyo para el sistema de archivos.
  • Apoyo para el mecanismo de llamada y retorno de un procedimiento.
  • Apoyo para ciertas funciones de contabilidad del sistema.

    El núcleo y los procesos
    Una definición más específica de lo que es el núcleo ( Kernel ) de un sistema operativo es: un conjunto de rutinas cuya misión es la de gestionar el procesador, la memoria, la entrada/salida y el resto de procesos disponibles en la instalación. Toda esta gestión la realiza para atender al funcionamiento y peticiones de los trabajos que se ejecutan en el sistema. 
    El esquema general de la gestión del procesador, es el siguiente:
  • Definición y concepto de proceso.
  • El Bloque de Control de Proceso (PCB) como imagen donde el sistema operativo ve el estado del proceso.
  • Estados por los que pasa un proceso a lo largo de su existencia en la computadora.
  • Operaciones que se pueden realizar sobre un proceso.
  • Clasificación de los procesos según su forma de ejecución, de carga, etc. 
    Por proceso debe entenderse: un programa en ejecución junto con el entorno asociado (registros, variables, etc.). 

1.4 Clasificación

  • Procesamiento en serie. Se trata de un procesamiento secuencial de todos los procesos. Es lento y poco práctico.  
  • Procesamiento por lotes.  Los trabajos se agrupan por lotes similares, se introduce todo el lote en la máquina, y ésta ejecuta completamente el lote. Este proceso conllevaba una pérdida de interactividad con el usuario. procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie
  • Procesamiento en multiprogramación. son sistemas que permiten realizar varias actividades o procesos a la vez sin ningún problema
  • Sistemas interactivos. 
  • Sistemas de tiempo real. son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran número de sucesos o eventos
  • Sistemas distribuidos. Son sistemas multiprocesador conectados entre sí por una red, siendo el conjunto global un único sistema.   permite distribuir trabajos, tareas o procesos entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es trasparente para el usuario

1.3 Evolución historica

Historia de los Sistemas Operativos - Generaciones
Los S. O. han estado relacionados históricamente con la arquitectura de las computadoras en las cuales se ejecutan, razón por la cual su historia puede analizarse según las siguientes generaciones y sus principales características.

Generación Cero (década de 1940): – Carencia total de S. O. – Completo acceso al lenguaje de máquina.



Primera generación (1945-1955): bulbos y conexiones: – Carencia de S. O.
– En los años cincuenta comienzan como transición entre trabajos, haciendo la misma más simple.

Segunda generación (1955-1965): transistores y sistemas de procesamiento por lotes (batch):
– En los años sesenta aparecen los S. O. para sistemas compartidos con:  Multiprogramación: varios programas de usuarios se encuentran al mismo tiempo en el almacenamiento principal, cambiando el procesador rápidamente de un trabajo a otro. 

  • Multiprocesamiento: varios procesadores se utilizan en un mismo sistema para incrementar el poder de procesamiento. – Posteriormente aparece la independencia de dispositivo: 
  • El programa del usuario especifica las características de los dispositivos que requieren los archivos. 
  • El S. O. asigna los dispositivos correspondientes según los requerimientos y las disponibilidades.
Tercera generación (1965-1980): circuitos integrados y multiprogramación: – Difusión de la multiprogramación: 

  1. Partición de la memoria en porciones, con trabajos distintos en cada una de ellas. ¤ Aprovechamiento del tiempo de espera consecuencia de operaciones de e / s, para utilizar la CPU para otros procesos. Protección por hardware del contenido de cada partición de memoria. – Aparición de técnicas de spooling
  2. Simultaneous Peripheral Operation On Line: operación simultánea y en línea de periféricos. 
  3. Almacenamiento de trabajos de entrada y de salida en dispositivos transitorios rápidos (discos), para disminuir el impacto de los periféricos mas lentos. – Son sistemas de modos múltiples, es decir que deben soportar sistemas de propósitos generales; son grandes y complejos pero muy poderosos. – Interponen una capa de software entre el usuario y el hardware. – Aparecen los lenguajes de control de trabajos, necesarios para especi…car el trabajo y los recursos requeridos. – Soportan timesharing (tiempo compartido), variante de la multiprogra- mación con usuarios conectados mediante terminales en línea, permitiendo la operación en modo interactivo o conversacional. – Aparecen los sistemas de tiempo real, que requieren tiempos de respuesta muy exigentes, especialmente para usos industriales o militares. Se difunden las computadoras de rango medio.
Cuarta generación (1980-1990): computadoras personales: – Aparición de software amigable con el usuario, destinado a usuarios no profesionales y con una interfase gráfica muy desarrollada. Desarrollo de sistemas operativos de red y sistemas operativos distri- buidos. Sistemas operativos de red: 

  • Los usuarios están conscientes de la existencia de varias computadoras conectadas.
  • Cada máquina ejecuta su propio S. O. local. 
  • Son similares a los S. O. de un solo procesador pero con el agregado de: ¢ Controlador de interfaz de la red y su software de bajo nivel. ¢ Software para conexión y acceso a archivos remotos, etc.                                                               Sistemas operativos distribuidos: 
  • Aparece ante los usuarios como un S. O. de un solo procesador, aún cuando de soporte a varios procesadores. 
  • Los usuarios no son conscientes del lugar donde se ejecutan sus programas o donde se encuentran sus archivos, ya que lo debe administrar el S. O. automáticamente. 
  • Deben permitir que un programa se ejecute mediante varios procesadores a la vez, maximizando el paralelismo. – Aparición de emuladores de terminal para el acceso a equipos remotos desde computadoras personales (PC). – Gran énfasis en la seguridad, en especial por el desarrollo de los sistemas de comunicaciones de datos. – El S. O. crea un ambiente de trabajo según el concepto de máquina virtual, que lo aísla del funcionamiento interno de la máquina. – Proliferación de sistemas de bases de datos, accesibles mediante redes de comunicación.


Relación cronológica de sistemas operativos windows. 

Windows 3.x: Funcionaba sobre DOS. En la versión 3.11 se incluyó el trabajo en redes con grupos de trabajo.

Windows NT 3.1 - 4:
 Sistema Operativo nuevo con problemas de compatibilidad de hardware. Versiones para servidores y estaciones de trabajo. Fueron las primeras versiones para trabajo cliente – servidor en empresas con gran volumen de equipos y distribución geográfica dispersa. Ø
Windows 95: Comienza a utilizar arquitectura de 32 bits. Desarrolla Win32. Incluye Plug&Play. Introduce el modo protegido. Facilita la conexión a Internet. Ø
Windows 98 – 98 SE: Nuevos controladores hardware. Fat32 (particiones mayores de 2Gb). Soporte para DVD, AGP, FireWire, USB. Integra Internet Explorer. La versión SE es la más estable, e incluye conexión compartida a Internet. Ø
Millenium: Proyecto rápido antes de XP. Proporciona poca estabilidad. Ø
Windows 2000: Evolución de NT mejorando servicios de red y Plug & Play. Versión para servidores y estaciones de trabajo. Fat32, NTFS, DFS, RAID, Directorio activo, RAS, etc.
Windows XP: Unión de Windows NT/2000 y 9x. Versiones Home y Profesional. Núcleo de NT. Interfaz nueva. Multitarea mejorada. Redes inalámbricas. Asistencia remota. Versión Media Center para Multimedia. Ø
Windows 2003 Server: Sucesor de Windows 2000 Server. El más estable de las versiones de servidor. Interfaz estilo XP. Nuevos servicios orientados a seguridad en redes e Internet.
Windows Vista: Versión que aparece en 2007. Las diferentes versiones que se pueden adquirir son tres para el consumidor, Vista Home Basic, Vista Home Premium y Ultimate Edition y dos versiones para las empresas, Vista Business y Vista Enterprise. Tiene la interfaz gráfica totalmente rediseñada, incluyendo gadgets en el escritorio, Internet Explorer 7, gestión automática de conexión a nuevas redes, etc.
Windows 7: Versión que aparece en 2009. Sistema operativo muy mejorado en toda su funcionalidad. 
Windowa 8:Disponible desde Octubre de 2012

miércoles, 27 de agosto de 2014

1.2 Funciones y características

Funciones  De  Los  Sistemas  Operativos.
Una De Las Principales Funciones Del S. O. Es Ocultar Toda Esta Complejidad y brindar al programador un conjunto mas conveniente de instrucciones para trabajar.

  •  Gestión de recursos: control de discos duros, CD­ROM y DVD­ROM, gestión de periféricos (teclado, ratón, etc...), asignación de cantidades de memoria, etc.
  • Interfaz de usuario: nos referimos al modo que tiene el ordenador de presentar la información al usuario. Ésta puede ser:
  • Gráfica (un escritorio con distintos iconos y barras de menú gobernados por ratón). Es el interfaz comúnmente utilizado por todos nosotros.
  • Por menús: las órdenes se dan escogiendo entre diversas opciones agrupadas por menús.
  • Consola de comandos: un buen ejemplo es el símbolo de sistema, en el grupo de programas de Accesorios de Windows XP. Este sistema de comunicación consiste en teclear directamente las órdenes en el teclado del PC.
  • Administración de archivos: el sistema operativo de encarga de guardar los datos en distintas unidades de almacenamiento (disco duro, disquetes, CD's y DVD's), así como de recuperarlos cuando el usuario se lo pida.
  • Gestión de tareas: los SO actuales son multitarea, es decir, pueden realizar varias tareas y ejecutar varios programas a la vez. Así, mientras navegamos por Internet o escribimos una carta, el antivirus está vigilando por si se produce algún ataque, o nuestro messenger está comprobando continuamente si alguno de nuestros contactos se ha conectado y nos ha enviado algún mensaje.

Desde el punto de vista del usuario común.

•Comandos para entrar y abandonar el sistema.
•Órdenes para modificar la clave de entrada.
•Comandos para definir las características de un terminal.
•Establecer las rutas de búsqueda.
•Ejecución y control de programas.
•Para establecer prioridades en los procesos.
•Para la manipulación de ficheros y subdirectorios.
•Para la información de estado.
• Órdenes de administración. 

Desde el punto de vista del programador de aplicaciones. 

•Creación de procesos y borrado.
•Comunicación y sincronización de procesos.
•Actividades de temporización.
•Gestión y uso de recursos.
•Asignación y liberación de memoria.
• Establecimiento de prioridades.  
Protección del sistema 

• Protección de E/S: Para conseguirla se diferencian dos modos de operación: modo usuario y modo supervisor. El cambio de un modo a otro se controla por parte del S.O., siendo sólo posible el cambio a modo supervisor desde un usuario por medio de llamadas a funciones del S.O. De este modo ciertas instrucciones sólo se ejecutarán en modo supervisor y el S.O. Podrá controlar como se realiza la E/S.
• Protección de la memoria: para que la protección de memoria sea eficiente, se necesita generalmente recursos hardware por los que se controla el acceso a la memoria. La implementación de este control, varía dependiendo de la gestión que se haga. De esta manera también se consigue proteger la E/S.  


TAREAS QUE DEBE LLEVAR A CABO UN SISTEMA OPERATIVO SON:
1. Gestión de la CPU: Responsable de iniciar los programas, finalizarlos, interrumpirlos, reanudarlos, etc. También debe permitir la comunicación de la CPU con el exterior.
2. Gestión de memoria: Controla la cantidad de memoria que necesita cada programa. Permite la coexistencia de varios procesos en memoria central.
3. Gestión de E/S: Los programas acceden a los periféricos de forma sencilla.
4. Gestión de dispositivos de almacenamiento: organiza la información en archivos y carpetas y permite el acceso rápido y eficiente a dicha información.
5. Intérprete de comandos: Las órdenes del usuario son interpretadas y llevadas a cabo.  




1.1 Definición y concepto

Definiciones más comunes y aceptadas son:
  • Un S. O. es un grupo de programas de proceso con las rutinas de control necesarias para mantener continuamente operativos dichos programas.

  • Un sistema operativo es un conjunto de programas que gestionan de una manera eficiente un sistema de información para proporcionar al usuario un interface de sencillo manejo. 

  • Un Sistema Operativo es un conjunto de programas que controla los dispositivos que forman el ordenador (memoria y periféricos), administra los recursos y gestiona la ejecución del resto del software.  

Sistemas Operativos más usados:


Unidad 1: Introducción a los sistemas operativos

1.1 Definición y concepto.
1.2 Funciones y características.
1.3 Evolución histórica.
1.4 Clasificación.
1.5 Estructura: niveles o estratos de diseño.
1.6 Núcleo.