Descarga la aplicación para disfrutar aún más
Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
Software Herramientas Informáticas I Prof. Ing. Norma Cañizares Software Definición de Software. Clasificación de Software. Sistemas Operativos. Software de Aplicación. Lenguajes de Programación. Software Libre VS Software Propietario Evolución Histórica de los Sistemas Operativos Software De Aplicación Software de Programación Software de Sistema SOFTWARE • El software de una computadora constituye la parte lógica del sistema, e incluye a todos los programas (sistemas operativos, procesadores de texto, reproductores multimedia, etc.) y datos (archivos de texto, audio, video, gráficos, etc.) del equipo de computación. • El Software se clasifica, básicamente, en: Concepto de Sistema Operativo s/ distintos autores. • Es un programa que actúa como intermediario entre el usuario y el hardware. El primer objetivo es la comodidad, el segundo la eficiencia [Silberschatz]. • Es un programa que tiene encomendada una serie de funciones diferentes cuyo objetivo es simplificar el manejo y utilización de la computadora, haciéndolo seguro y eficiente [Carretero]. • El trabajo del sistema operativo es proporcionar a los programas de usuario un modelo de computadora sencillo, además de encargarse de la administración de todos los recursos hardware de la misma. [Tanenbaum]. • Es un programa que controla la ejecución de los programas de aplicación y que actúa como interfaz entre los usuarios y el hardware. [Stallings]. SOFTWARE – Sist. Operativo Concepto de Sistema Operativo s/ Tanenbaunm El concepto de Sistema Operativo esta relacionado con la ubicación del mismo en el Sistema de Computación. Capa de Software Modo Kernel Puente (Interfaz) Software de Usuario HardWare Maquina Gestión de Dispositivos de Maquina Fig. Ubicación del S.O. dentro del Sistema de Computación. SOFTWARE – Sist. Operativo En síntesis, el núcleo (kernel) es la parte fundamental de un sistema operativo. • Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora, es decir, es el encargado de gestionar los recursos, a través de servicios de llamada al sistema. • Como hay muchos programas y el acceso al hardware es limitado, el núcleo también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. SOFTWARE. Sist. Operativo Puntos de Vista de Sistema Operativo s/ Tanenbaunm • Según Andrew S. Tanenbaum, los sistemas operativos se pueden ver desde dos puntos de vista: como administrador de recursos y como máquinas extendidas. Sistema Operativo Maquina Virtual o Extendida Administrador de Recursos SOFTWARE – Sist. Operativo Sistema Operativo como Administrador de Recursos Un sistema operativo es un conjunto de políticas para gestionar un conjunto de recursos, normalmente escasos, entre un conjunto de procesos que compiten por ellos. El sistema operativo lleva la cuenta del estado de cada recurso y decide quien lo obtiene, durante cuanto tiempo y cuando. Estos recursos son: • El procesador • La memoria • El sistema de archivos • Los dispositivos de entrada y salida Ejemplo de S.O. como Administrador de Recursos: Espacio Memoria, Disco Duro Tiempo CPU, Impresora Compartir Recursos usando Multiplexación Cuando un recurso se multiplexa en el tiempo, los distintos programas o usuarios toman turnos para utilizarlo Cuando un recurso se multiplexa en el espacio, cada programa o usuario obtiene una parte del recurso. Sistema Operativo como Máquina Virtual o Extendida Un sistema operativo es una serie de componentes que ocultan la complejidad del hardware y proporcionan abstracciones de mayor nivel (máquina extendida) que facilitan su uso a través de servicios o llamadas al Sistema. Proporciona servicios o llamadas al sistema para: Control de procesos Manipulación de archivos Manipulación de dispositivos Mantenimiento de información Comunicaciones Virtualización: es la abstracción de los recursos de una computadora la cual permite manejar, gestionar y arbitrar los cuatro recursos principales de una computadora (CPU, Memoria, Red, Almacenamiento) Ejemplos: Tipos de llamadas al sistema. • Control de procesos: fin, abortar; cargar, ejecutar; crear proceso, terminar proceso; esperar suceso, indicar la Ocurrencia del suceso; asignar y liberar memoria •Manipulación de archivos: crear archivo, eliminar archivo; abrir, cerrar; leer, escribir, reposicionar; obtener atributos de archivo, establecer atributos de archivo •Manipulación de dispositivos: solicitar dispositivo, liberar dispositivo; leer, escribir, reposicionar; conectar o desconectar lógicamente dispositivos •Mantenimiento de información: obtener hora o fecha, establecer hora o fecha; obtener datos del sistema, establecer datos del sistema; obtener atributos de un proceso, archivo o dispositivo • Comunicaciones: crear, eliminar conexión de comunicación; enviar, recibir mensajes; transferir información de estado; conectar o desconectar dispositivos remotos. El Sistema Operativo como una Interfaz de Usuario según Stanlling. Según Williams Stanlling, los sistemas operativos tienen un tercer punto de vista el cual es “S.O. como una interfaz de un Usuario”. Según este punto de vista los S.O. permiten que los usuarios dialoguen de forma interactiva con el sistema. El dialogo puede ser a través de: Interfaz de Texto. • Se conoce como shell o intérprete de comandos. • Espera que el usuario teclee una orden en el shell. Después la analiza y si es válida la ejecuta. Una vez que esta concluye retorna a la espera. Interfaz grafica. • Existen elementos gráficos para comunicarse con el S.O. (botones, menús, iconos, etc.). En este caso al interprete de comandos se lo conoce como GUI. • Espera por eventos generados por el ratón y el teclado. Valida el evento y lo ejecuta. Una vez ejecutado retorna a la espera de más eventos. SOFTWARE – Sist. Operativo Software - Sistemas Operativos Niveles de un Sistema Operativo s/ Stanlling Núcleo (Kernel): Es la capa más cercana al Hardware la cual gestiona los recursos hardware del sistema y suministra la funcionalidad básica del sistema operativo como: el procesador, la memoria, los dispositivos de E/S. Capa de servicios o llamadas al sistema: Ésta capa ofrece a los programas, servicios en forma de una interfaz de programación o API (application programming interface); facilitando la creación de programas aplicando las funciones que le suministra el SO. Intérprete de comandos o Shell: Suministra la interfaz para que el usuario pueda comunicarse de manera interactiva con la computadora. El Shell recibe las órdenes del usuario; los interpreta y si puede los ejecuta. Algunos autores no consideran el Shell como parte del sistema, ya que se ejecuta a nivel de usuario. Ciclo Escolar 2013-2014B Funciones básicas Un sistema operativo desempeña 5 funciones básicas en la operación de un sistema informático: 1. Suministro de interfaz al usuario 2. Administración de recursos 3. Administración de archivos 4. Administración de tareas 5. Servicio de soporte y utilidades Software - Sistemas Operativos Clasificación de Sistemas Operativos por Servicio SOFTWARE – Sist. Operativo El sistema operativo por servicio hace referencia al punto de vista del usuario final (visión externa): • Por el numero de usuarios: Monousuarios Multiusuarios • Por el numero de tareas: Monotareas Multitareas • Por el numero de procesadores: Monoproceso Multiproceso Fuertemente acoplados (simétricos y asimétricos) Débilmente acoplados (procesamiento paralelo y sistemas distribuidos) Ejercicios: • Un Sistema Multiusuario podría ser un sistema Monotarea? • Un Sistema Multitarea podría ser un Sistema Monoproceso? • Un Sistema Multiusuario podría ser un sistema Multiproceso? • Los sistemas operativos monousuario fueron diseñados para ser utilizados por una persona en un solo ordenador. (V/F) • Los sistemas operativos multiusuario pueden funcionar en red. (V/F) • Los sistemas monotarea ejecutan varias tareas a la vez. (V/F) • Con los sistemas multitarea se pueden utilizar varios programas a la vez, porque están capacitados para mantener todos los datos en memoria. (V/F) SOFTWARE – Sist. Operativo Procesadores de Texto Base de Datos Hojas de Cálculo Gráficos Organizador Personal A MEDIDA Control de Producción Gestión de Mantenimiento de Maquinaria Ofimática (Más utilizado) COMERCIALES Sistemas Específicos (Contabilidad) Software de Aplicación: Es el software diseñado y escrito para realizar una tarea especifica, ya sea personal, o de procesamiento. Aquí se incluyen las bases de datos, tratamientos de textos, hojas electrónicas, gráficas, comunicaciones, etc.. SOFTWARE Software de programación: Es el conjunto de herramientas que permiten al programador desarrollar programas informáticos, usando diferentes alternativas y lenguajes de programación, de una manera práctica. Incluye entre otros: Editores de texto Compiladores Intérpretes Enlazadores Depuradores Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etc.. Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI). SOFTWARE Otras formas de clasificar el SW De acuerdo a su costo: De costo cero: SW gratis, costo de adquisición nulo. De costo mayor a cero: SW Comercial. De acuerdo a la apertura de su código fuente: De código fuente abierto: Open Source, acceso al código fuente. De código fuente cerrado: no se puede tener acceso al código fuente. En Gral., es sw propietario. De acuerdo a su “filosofía”: Propietario Libre De acuerdo a su protección: De dominio público: sw que no esta protegido con ningún tipo de licencia. Protegido por licencias Protegido con copyright: con derechos de autor (o de copia) Protegido con copyleft: garantiza las libertades del sw libre, establece que cuando se redistribuye el sw, estas libertades se trasladen a los receptores del mismo.. Acerca de las Licencias de Uso El software se rige por licencias de utilización, es decir, en ningún momento un usuario compra un programa o se convierte en propietario de él, tan sólo adquiere el derecho de uso, incluso así haya pagado por el. Las condiciones bajo las cuales se permite el uso del software --o sea las licencias-- son contratos suscritos entre los productores de software y los usuarios. En general, las licencias corresponden a derechos que se conceden a los usuarios, principalmente en el caso del software libre, y a restricciones de uso en el caso del software propietario. Las licencias son de gran importancia tanto para el software propietario como para el software libre, igual que cualquier contrato. Un caso especial, en lo que concierne a la propiedad sobre el software, lo constituyen los programas denominados de dominio público, porque sus creadores renuncian a los derechos de autor. SOFTWARE PROPIETARIO (SW privado) • Es un software creado por personas o empresas con finalidad comercial, generando ingresos mediante la venta masiva de la licencia. (software pago) • Las licencias propietarias establecen que el usuario adquiere solamente la facultad de utilizar el programa pero no la propiedad del mismo (Protegido con copyright.) • Tampoco el usuario adquiere el derecho de modificar ni analizar el funcionamiento interno del software (código cerrado). • Los fabricantes de programas sometidos a este tipo de licencias por lo general ofrecen servicios de soporte técnico y actualizaciones durante el tiempo de vida del producto. Software Libre (Free software) De acuerdo con la definición de los autores del modelo, el software libre se refiere a cuatro libertades fundamentales de los usuarios. Otorga la libertad de: Usar el programa, con cualquier finalidad, Estudiar su funcionamiento y adaptarlo a necesidades específicas, Distribuir copias de la manera que se desee, y Mejorar el programa haciendo públicas dichas mejoras. Condición necesaria para que estas libertades puedan existir, “es necesario disponer del código fuente del programa” En este tipo de licencia, debe entenderse libre en el sentido de libertad. no hay que confundirlo con software gratis. Por lo tanto, puede existir algún costo asociado a su adquisición o con servicios de soporte con licencia bajo el paradigma de software libre. Esta modalidad no significa no comercial, por tal razón este software puede comercializarse. No obstante, gran parte del sw libre existente también es gratuito Sistemas Operativos Evolución Histórica Primera Generación Respecto al procesamiento de la Información. Procesamiento en Serie. • El programador insertaba su trabajo y esperaba su turno. • Existía un desaprovechamiento inadecuado del computador ("tiempos muertos de la CPU"). Requerimientos para el procesamiento en serie: • Planificación del uso de la maquina en una planilla en el que se especificaba la asignación del tiempo requerido (en Gral. cada ½ hora) para cada tarea. • Tiempo necesario para la configuración de la maquina en función de la tarea a procesar (esto significaba montar y desmontar cintas o configurar tarjetas). Segunda Generación Sistemas Operativos en Lotes o Bach • Sistemas Batch: Procesamiento en serie a través de lotes de tarjetas perforadas o jobs (trabajos). • El programador es el encargado de organizar, los lotes de tarjetas perforadas, mediante máquinas especialmente dedicadas para ese propósito llamadas máquinas perforadoras. • El programador no interactúa directamente con el computador. • Procesaban un único flujo de trabajos en lotes. • Disponían de un conjunto de rutinas de E/S. • Tenían un lenguaje de control de trabajos que permitía especificar los recursos a utilizar y las operaciones a realizar por cada trabajo. • El software principal del S.O. se denominaba monitor residente, y era el que controlaba la secuencia de sucesos. • Control inicial en el monitor • Transfiere el control a el primer job • Cuando el job termina o se produce un error se transfiere el control al monitor Segunda Generación (Cont.) $END $RUN $LOAD $FTN Tratamiento de interrupciones Controlador de Dispositivos Secuenciamiento de trabajos Intérprete del Lenguaje de Control Zona del Programa del Usuario M o n it o r Disposición de la memoria $JOB Programa a compilar Paquete de tarjetas para un sistema sencillo de por lotes Fig. Ejemplo de utilización del sistema Fig. Uno de los primeros sistemas de procesamiento por lotes. a) Los programadores llevan las tarjetas a la 1401. ) La 1401 lee los lotes de trabajos y los coloca en cinta. c) El operador lleva la cinta de entrada a la 7094. d) La 7094 realiza los cálculos. e) El operador lleva la cinta de salida a la 1401. f) La 1401 imprime los resultados. Tercera Generación Respecto al procesamiento de la Información. Procesamiento de los trabajos en lotes con carga continua - Spooling – Tecnología de discos • Spooling, es una tecnología que apareció con los sistemas batch para mejorar el rendimiento del sistema. • La introducción de la tecnología de discos entrega una solución en la que la CPU interactúa directamente con el disco. Esta forma de procesamiento se denomina Spooling (Simultaneous peripheral operation on-line) Tercera Generación (Cont.) Sistemas en Lotes Multiprogramados. • La Multiprogramacion permite al procesador gestionar múltiples trabajos en lotes en un determinado tiempo. • Para ello es necesario particionar la memoria en varias piezas, de esta manera en la misma se puede almacenar, aparte del Sistema Operativo, mas de un trabajo de usuario. • La implementación de esta técnica requiere del uso de Hardware especial que gestione los DMA (Acceso Directo a Memoria) y las interrupciones de E/S. • Objetivo: Maximizar el uso del procesador. Ventaja: Se aprovecha de manera mas eficiente el uso del procesador. Desventaja: El usuario no puede interactuar con el Job durante su ejecución. Fig.Un sistema de multiprogramación con tres trabajos en memoria. Ejecutar Ejecutar Esperar E/S Tiempo Monoprogramación Solo un programa en ejecución a la vez Ejecutar A Ejecutar A Tiempo Ejecutar B Ejecutar B Multiprogramación Más de un programa en ejecución a la vez Esperar E/S Esperar E/S Esperar E/S Ejecutar C Ejecutar C Tercera Generación (Cont.) Sistemas de Tiempo Compartido (también se basa en la multiprogramación). • En estos sistemas, múltiples usuarios acceden simultáneamente al sistema a través de terminales, siendo el sistema operativo el encargado de entrelazar la ejecución de cada programa de usuario en pequeños intervalos de tiempo. • En este caso se divide el tiempo del procesador para ejecutar los trabajos de distintos usuarios ubicados en las terminales. • En estos sistemas el usuario interacciona directamente con el sistema. • Objetivo: Minimizar el tiempo de respuesta. Usuario 3 Usuario 2 Usuario 1 Tareas del Sistema Operativo •Sistema Multitarea •Sistema Interactivo •Sistema de Archivos (archivos/directorios) •Sistema Multiusuario •Memoria Virtual (memoria lógica) Cuarta Generación Características de los Sistemas Operativos para PC: Sistemas operativos monousuario. Los sistemas operativos incorporan técnicas implementadas en generaciones anteriores: Multiprogramación, Tiempo Compartido, Memorial Virtual, Sistema Jerárquico De Archivos. Los sistemas operativos para las primeras microcomputadoras se basaban en que los usuarios escribieran los comandos mediante el teclado. Ej. MsDos, Unix. Luego, se evoluciona a una interfaz grafica intuitiva y amigable, destinado a usuarios no profesionales. 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. Avances a mediados de la década del 80’. Desarrollo de sistemas operativos de red y sistemas operativos distribuidos. Gran énfasis en la seguridad, en especial por el desarrollo de los sistemas de comunicaciones de datos. Proliferación de sistemas de bases de datos, accesibles mediante redes de comunicación. Cuarta Generación (Cont.) 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. SO SO SO SO SO Red de comunicación Server Sistemas operativos distribuidos: Se entiende por Sistema Distribuido aquel en que la inteligencia del Sistema Informático esta repartida por distintos procesadores. Ejemplo: una red de ordenadores. Ventajas de los sistemas distribuidos • Se comparten recursos: Se puede utilizar otro dispositivo que esté conectado a otro nodo de la red. • Aumenta la velocidad de computación: −Se distribuye el trabajo entre los distintos procesadores, o nodos. −Fiabilidad: Si falla un ordenador otro puede seguir con la tarea. • Comunicación. Quinta Generación En esta generación: • Se explota al máximo el concepto de Multitheading (multihilo) o multitareas para mantener trabajando al procesador con más de un proceso a la vez, y • También se desarrollan Sistemas Operativos que permiten realizar procesamientos en paralelo (por ejemplo, Multiprocesamiento Simétrico). Multitheading: Es una técnica en la cual un proceso, que ejecuta una aplicación, se divide en una serie de hilos o threads para ejecutarse concurrentemente. Multiprocesamiento Simétrico (SMP: Symmetric Multi- Processing) o Sistemas Paralelos: Es un término que se refiere a la arquitectura hardware del computador y también al comportamiento del sistema operativo que explota dicha arquitectura. Quinta Generación (Cont.) Multiprocesador Simétrico Se puede definir un Multiprocesador Simétrico como un sistema de computación con las siguientes características: • Tiene múltiples procesadores. • Estos procesadores comparten las mismas utilidades de memoria principal y de E/S, interconectadas por un bus de comunicación u otro esquema de conexión interna. • Todos los procesadores pueden realizar las mismas funciones (de ahí el término simétrico). El sistema operativo de un SMP planifica procesos o hilos a través de todos los procesadores. Por lo tanto, varios procesos se pueden ejecutar simultáneamente, cada uno de ellos en un procesador diferente. Además, debido a que todos los procesadores pueden llevar a cabo las mismas funciones, el fallo de un solo procesador no detiene el equipo.
Compartir