Download 4. Conceptos básicos de Software

Document related concepts

Multiusuario wikipedia , lookup

Núcleo (informática) wikipedia , lookup

Sistema operativo wikipedia , lookup

Máquina virtual wikipedia , lookup

Anillo (seguridad informática) wikipedia , lookup

Transcript
Universidad Nacional de Luján
Departamento de Ciencias Básicas
División Estadística y Sistemas
Computación
4. Conceptos básicos de Software
4.1 Introducción
En los primeros tiempos de la informática (década de 1940) la utilización de
computadoras se restringía a organizaciones que podían pagar su alto precio, y
no existía ese software de gerenciamiento de la máquina denominado “sistema
operativo”. Por su naturaleza, el programador debía tener un conocimiento pleno
del hardware, dado que programaba en código de máquina; y en el caso de que
un programa fallara, debía examinar los valores de los registros y paneles de luces
indicadoras del estado de la computadora para determinar la causa del fallo y
poder corregir su programa. No existía un software de gerenciamiento de la
máquina denominado “Sistema Operativo”. Como una segunda mejora al
procesamiento de información se introdujeron las tarjetas perforadas, como
métodos de ingreso y salida de información. La forma en que se procesaban los
trabajos de los distintos usuarios era serial o por lotes.
En ese entonces, la utilización de una computadora requería de los
usuarios cierto conocimiento técnico y una alta complejidad a la hora de escribir un
programa y ejecutarlo. Bajo estas condiciones la utilización de las computadoras
era restrictiva.
La necesidad de administrar de forma eficiente los recursos de una
computadora, a los efectos de obtener una mayor perfomance, se hace imperante
en la década de 1950, donde nacen los sistemas operativos. Se comenzó a ver
que las tareas propias del operador podían plasmarse en un programa, el cual se
denominó en un principio “monitor” y luego “sistema operativo”.
4.1.1 El sistema operativo como una máquina ampliada
Como mencionáramos antes, la arquitectura (conjunto de instrucciones,
organización de la memoria, E/S y estructura de bus) de muchas computadoras en
el nivel del lenguaje de máquina es primitiva y difícil de programar, especialmente
con la entrada/salida. Sin incursionar en detalles reales, debe estar claro que el
programador probablemente no desea verse demasiado envuelo en la
programación de los distintos elementos de hardware. En su lugar, lo que un
programador desea es una abstracción simple de alto nivel con la cual trabajar. El
sistema operativo es, en este caso, el programa que oculta la verdad del hardware
al programador y los usuarios, presentándola de una forma simple y accesible.
Pág. 1 de 9
Universidad Nacional de Luján
Departamento de Ciencias Básicas
División Estadística y Sistemas
Computación
En esta visión, la función del sistema operativo es la de presentar al usuario
con el equivalente de una máquina ampliada o máquina virtual que sea más fácil
de programar que el hardware implícito.
4.1.2 El sistema operativo como manejador de recursos
Las computadoras actuales cuentan con procesadores, memoria, discos,
relojes, interfaces de red, dispositivos de almacenamiento, etc. En esta visión el
sistema operativo permite ofrecer una distribución ordenada y controlada de los
procesadores, memorias y dispositivos de E/S entre los diversos programas que
compiten con ellos. Por ejemplo, podría ser el caso de tres programas trataran de
enviar su salida impresa en forma simultánea en la misma impresora. El sistema
operativo es el encargado de administrar y ordenar la salida poniendo en “cola” las
distintas impresiones.
Cuando una computadora tiene múltiples usuarios, la necesidad de manejar
y proteger la memoria, dispositivos de E/S y otros recursos es aún más evidente.
El sistema operativo es el que lleva el control de quén utiliza cuál recurso,
conceder requisiciones de recursos, explicar el uso e interceder en requisiciones
conflictiva de diferentes programas y usuarios.
4.2 Definición de sistema operativo (condensado de los apuntes del ciclo de
ingreso a la FI de la UNLP)
Se puede definir que básicamente en el sistema operativo se incorporan las
funciones de control del hardware de una computadora, de administración de sus
recursos físicos y de sus usuarios, así como el control efectivo de la ejecución de
los programas que en ella se carguen.
El funcionamiento del Sistema Operativo implica de existencia de al menos
un programa que está permanentemente ejecutándose junto con las demás
aplicaciones.
Esto significa que un subconjunto de los recursos de las computadoras son
“tomados” por el Sistema Operativo que se comunica directa o indirectamente con
los programas de aplicación que se ejecutan para cooperar en la ejecución o
retomar el control del hardware en caso de problemas.
En resumen, las dos funciones principales de un sistema operativo son:
1) Administrar los recursos de hardware y software de la computadora
y,
Pág. 2 de 9
Universidad Nacional de Luján
Departamento de Ciencias Básicas
División Estadística y Sistemas
Computación
2) brindar facilidades a los usuarios para su utilización (interface de
usuario).
Teniendo en cuenta estas funciones también se podría definir sistema
operativo desde dos puntos de vistas:
1) Desde el punto de vista de GESTOR DE RECURSOS, como el
administrador de los recursos ofrecidos por el hardware para alcanzar
un rendimiento eficaz de los mismos. Los sistemas operativos
construyen recursos de alto nivel, denominados VIRTUALES, a base de
encubrir los realmente existentes de bajo nivel, denominados FISICOS.
De esta manera, desde el punto de vista del usuario o de un proceso, la
máquina física es convertida por el sistema operativo en una máquina
virtual o máquina extendida, que, a diferencia de la física, ofrece
muchas más funciones y es más fácil de utilizar.
2) Desde el punto de vista del USUARIO, como el conjunto de programas
y funciones que ocultan los detalles del hardware, ofreciendo al usuario
una manera sencilla y flexible de acceder al mismo. Este ocultamiento
tiene dos objetivos: a) la abstracción, por la cual el software da una
visión global y abstracta de la computadora haciendo fácil su uso
ocultando por completo la gestión interna y b) la seguridad, necesaria
para restringir determinadas operaciones a los usuarios creando varios
niveles de privilegio, de tal forma que cada usuario tenga protegida su
información y sus procesos.
4.3 Algunas de las funciones del sistema operativo (condensado de los
apuntes del ciclo de ingreso a la FI de la UNLP)
Comunicación con los periféricos
Una de las tareas más complejas realizadas por una computadora es la
comunicación con pantallas, scanners, impresoras, unidades de disco, mouses,
teclados, placas de sonido, placas conversoras analógico/digitales y otros
dispositivos periféricos. El sistema operativo incluye programas que se encargan
de un modo transparente al usuario de los detalles de comunicación con los
periféricos o con el hardware que controla estos periféricos.
Control de autorización de usuarios
En el caso de las computadoras monousuario el sistema operativo puede
Pág. 3 de 9
Universidad Nacional de Luján
Departamento de Ciencias Básicas
División Estadística y Sistemas
Computación
verificar (mediante una clave por ejemplo) que el usuario que trata de utilizar el
equipo está habilitado para ello. Más aún puede tener derechos sobre
determinados recursos del equipo pero no sobre todos los recursos.
Cuando se trata de computadoras multiusuario, o en el caso de redes de
computadoras, la tarea de administración de usuarios del sistema operativo es
bastante más compleja, porque los derechos de cada usuario pueden ser
diferentes sobre cada máquina, cada base de datos o cada periférico. En algunos
casos este control de usuarios, incluye control de tiempos de utilización para el
cobro posterior de los servicios.
Control de la ejecución de programas
La ejecución efectiva de un programa (escrito en cualquier lenguaje de
programación o aplicación) requiere una comunicación permanente con el sistema
operativo para acceder a los recursos de la computadora, recursos que el sistema
operativo controla y verifica. De este modo se puede detectar que una orden de
impresión escrita en un programa es imposible de ejecutar porque la impresora no
está encendida, o que un dato de un archivo no se puede recuperar porque falla el
dispositivo periférico, o que la ejecución de un programa ha tardado más de un
tiempo máximo determinado, etc. También el sistema operativo monitorea el
resultado de la ejecución para trasmitir al usuario el mensaje adecuado resultante
de la evolución de la ejecución.
Control de concurrencia
Las computadoras multiusuario (que tienen terminales conectadas a un
gran procesador central), las redes de computadoras o las modernas
computadoras paralelas con varios procesadores internos, pueden tener varios
trabajos ejecutándose al mismo tiempo (procesamiento concurrente). Esto exige
que el sistema operativo controle que hace cada proceso y permita que los
mismos compartan datos y recursos (es decir se comuniquen y se sincronicen).
Por otra parte estos múltiples procesos pueden tener diferente prioridad para
acceder a los recursos, lo que debe ser controlado también por el sistema
operativo.
Control de errores
Como se mencionó anteriormente, cada error de ejecución de una
aplicación termina entregando el control al sistema operativo que debe manejar la
solución al error (desde el punto de vista que el sistema de cómputo siga
funcionando) y también la comunicación clara al usuario de las causas del error.
Administración de memoria
Pág. 4 de 9
Universidad Nacional de Luján
Departamento de Ciencias Básicas
División Estadística y Sistemas
Computación
Al poder procesar concurrentemente varios trabajos, el sistema operativo
debe controlar la forma de usar la memoria de la computadora, de modo que un
trabajo no invada el espacio físico de otro. Los esquemas de administración de
memoria pueden ser muy sencillos (división en partes asignadas a cada proceso)
o más sofisticada de modo de asignar y liberar memoria en forma dinámica según
los requerimientos y prioridades de los procesos.
Controles de seguridad de datos
Los datos almacenados en una computadora pueden tener protecciones
(imaginen una base de datos con la información de cada alumno de la Facultad,
incluyendo las notas de sus exámenes) de modo de autorizar las modificaciones,
agregados o consultas. Estas funciones de seguridad también forman parte del
sistema operativo.
Manipulación del sistema de archivos
Un sistema operativo debe facilitar las herramientas necesarias para leer,
escribir y eliminar archivos. Un sistema de archivos es una estructura de
directorios con algún tipo de organización el cual nos permite almacenar, crear y
borrar archivos en diferentes formatos.
Es evidente que existe la necesidad por parte de los usuarios y aplicaciones
de almacenar datos en algún medio, a veces por períodos largos y a veces por
instantes, cada aplicación y cada usuario debe tener ciertos derechos con sus
datos, como son el poder crearlos y borrarlos, o cambiarlos de lugar; además de
poder preservarlos de los demás.
4.4 Modelo de capas de la computadora
Ahora, habiendo definido sistema operativo, es posible presentar un modelo
de capas que muestra las distintas partes de una computadora:
Pág. 5 de 9
Universidad Nacional de Luján
Departamento de Ciencias Básicas
División Estadística y Sistemas
Computación
Usuarios
Utilitarios
Sistema
Lenguajes
Usuarios
Hardware
Usuarios
Operativo
Sistemas
Usuarios
Distintas capas que componen un sistema informático
4.5 Tipos de sistemas operativos
Existen diferentes formas de categorizar a los sistemas operativos, una de
ellas es por los servicios que prestan:
4.5.1 Sistemas Operativos por Servicios
4.5.1.1 Por el número de usuarios
a) Monousuarios
Los sistemas operativos monousuarios son aquéllos que
soportan a un usuario a la vez, sin importar el número de
procesadores que tenga la computadora o el número de procesos o
tareas que el usuario pueda ejecutar en un mismo instante de
tiempo. Las computadoras personales de los primeros tiempos son
ejemplos de esta categoría.
b) Multiusuarios
Pág. 6 de 9
Universidad Nacional de Luján
Departamento de Ciencias Básicas
División Estadística y Sistemas
Computación
Los sistemas operativos multiusuarios son capaces de dar
servicio a más de un usuario a la vez, ya sea por medio de varias
terminales conectadas a la computadora o por medio de sesiones
remotas en una red de comunicaciones. No importa el número de
procesadores en la máquina ni el número de procesos que cada
usuario puede ejecutar simultáneamente.
4.5.1.2 Por el número de tareas
a) Monotareas
Los sistemas monotareas son aquellos que sólo permiten una
tarea a la vez por usuario. Puede darse el caso de un sistema
multiusuario y monotarea, en el cual se admiten varios usuarios al
mismo tiempo pero cada uno de ellos puede estar haciendo solo una
tarea a la vez.
b) Multitareas
Un sistema operativo multitarea es aquel que le permite al
usuario estar realizando varias tareas al mismo tiempo. Por ejemplo,
puede estar editando el código fuente de un programa durante su
depuración mientras compila otro programa, a la vez que está
recibiendo correo electrónico en un proceso en background. Es
común encontrar en ellos interfaces gráficas orientadas al uso de
menús y el ratón, lo cual permite un rápido intercambio entre las
tareas para el usuario, mejorando su productividad.
4.5.1.3 Por el número de procesadores
a) Uniproceso
Un sistema operativo uniproceso es aquél que es capaz de
manejar solamente un procesador de la computadora, de manera
que si la computadora tuviese más de uno le sería inútil. Los
ejemplos más típicos de este tipo de sistemas son DOS y MacOS.
b) Multiproceso
Un sistema operativo multiproceso se refiere al número de
procesadores del sistema, que es más de uno y éste es capaz de
usarlos todos para distribuir su carga de trabajo. Generalmente estos
Pág. 7 de 9
Universidad Nacional de Luján
Departamento de Ciencias Básicas
División Estadística y Sistemas
Computación
sistemas trabajan de dos formas: simétrica o asimétricamente.
Cuando se trabaja de manera asimétrica, el sistema operativo
selecciona a uno de los procesadores el cual será el procesador
maestro y será el encargado de distribuir la carga de trabajo a los
demás procesadores. Cuando se trabaja de manera simétrica, los
procesos o partes de ellos son enviados indistintamente a cualquiera
de los procesadores disponibles, teniendo una mejor distribución y
equilibrio.
4.6 Software de Sistema vs. Software de Aplicación
Como se vio oportunamente, un Sistema Operativo es una interfase entre
el usuario y los recursos de la computadora, que sólo permite el uso de los
recursos del hardware. Sin embargo, las necesidades de cualquier usuario van
mucho más allá: redactar notas, confeccionar informes, enviar e-mails, realizar
cálculos, armar presentaciones, etc.
Surge entones la necesidad de desarrollar “programas comerciales” que,
haciendo uso de los servicios que brinda el sistema operativo, permitan a un
usuario satisfacer sus requerimientos. Este conjunto de programas se denomina
Software de Aplicación.
El software de aplicación describe programas que son para el usuario. Así
por ejemplo, un procesador de texto, una planilla de cálculos, constituyen un
software de aplicación. Existen literalmente miles de estos programas para ser
aplicados en diferentes tareas, desde procesamiento de palabras hasta cómo
seleccionar una universidad. Las siguientes categorías intentan reunir todos los
programas disponibles:
4.6.1 Aplicaciones de negocios
Estas incluyen programas tales como los procesadores de textos,
planillas de cálculo, autoedición, administración de bases de datos,
aplicaciones gráficas, aplicaciones corporativas, etc.
4.6.2 Aplicaciones de utilerías (o utilitarios).
Permiten administrar y mantener la computadora, tales como
antivirus, anti-espías, herramientas de mantenimiento de sistemas de
Pág. 8 de 9
Universidad Nacional de Luján
Departamento de Ciencias Básicas
División Estadística y Sistemas
Computación
archivos, herramientas para mejorar rendimiento, recuperadores de bases
de datos, etc.
4.6.3 Aplicaciones personales
Se refieren a las aplicaciones para uso personal, como agendas,
tareas para hacer, correo electrónico, etc.
4.6.4 Aplicaciones de entretenimiento
Son los programas dedicados a los juegos interactivos, también
incluyen los programas educativos.
Pág. 9 de 9