Vous êtes sur la page 1sur 95

TEMA 4. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. ............................................................................................

OBJETIVOS ........................................................................................................................................................................ 4
EL SISTEMA OPERATIVO........................................................................................................................................................ 5
Prestaciones de un sistema operativo. ..................................................................................................................... 8
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS ............................................................................................................................ 11
ARQUITECTURA DE UN SISTEMA OPERATIVO ........................................................................................................................... 12
FUNCIONES DE LOS SISTEMAS OPERATIVOS............................................................................................................................. 14
Gestión del procesador .......................................................................................................................................... 18
Gestión de procesos. .............................................................................................................................................. 24
Gestion de memoria. .............................................................................................................................................. 33
Gestión de dispositivos. .......................................................................................................................................... 41
Gestión de la información. ..................................................................................................................................... 46
MODOS DE EXPLOTACIÓN DEL SISTEMA ................................................................................................................................. 59
Procesamiento por lotes (batch). ........................................................................................................................... 60
Tiempo compartido (Time Sharing)........................................................................................................................ 62
Tiempo real (Real Time). ........................................................................................................................................ 64
TIPOS DE SISTEMAS OPERATIVOS .......................................................................................................................................... 65
En función del número de usuarios simultáneos. ................................................................................................... 65
En función del número de procesos simultáneos. .................................................................................................. 66
En función del número de procesadores en uso simultáneo. ................................................................................. 67
Según el tipo de aplicaciones ................................................................................................................................. 69
Por su disponibilidad .............................................................................................................................................. 70
TEMA 5. EL SOFTWARE .............................................................................................................................................. 71

TIPOS DE SOFTWARE ......................................................................................................................................................... 71


Software de sistema ............................................................................................................................................... 71
Software de programación .................................................................................................................................... 74
Software de aplicación ........................................................................................................................................... 75
LICENCIAS DE SOFTWARE .................................................................................................................................................... 76
La propiedad intelectual ........................................................................................................................................ 76
licencias de uso ...................................................................................................................................................... 78
Tipos de licencia ..................................................................................................................................................... 80
Versiones del software. .......................................................................................................................................... 93
TEMA 4. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.

OBJETIVOS

Saber lo que es un sistema operativo, identificar los elementos y estructura de


un sistema operativo, conocer las funciones de un sistema operativo, conocer los
distintos tipos de sistemas operativos, distinguir los tipos de licencia que se
pueden utilizar.
EL SISTEMA OPERATIVO

 El sistema operativo es el responsable de la gestión de los


recursos del ordenador para el almacenamiento y proceso de
datos.
 Podemos definir recurso como un componente hardware o
software necesario para llevar a cabo un trabajo. En los
ordenadores existen cuatro tipos de recursos físicos: el
procesador, la memoria principal, el almacenamiento
secundario y los dispositivos de entrada salida.
 El ordenador es un sistema programable formado por un conjunto de
elementos hardware que necesitan instrucciones que le indique como utilizar
los recursos. El conjunto de instrucciones o programas es lo que conocemos
como soporte lógico o software.
 El software que se crea para gestionar los recursos del sistema es lo que
denominamos sistema operativo y que lo podemos definir como:
 Un conjunto de programas de un sistema informático que gestiona los
recursos de hardware y provee servicios a los programas de aplicación,
ejecutándose en modo privilegiado respecto de los restantes (aunque puede
que parte de él se ejecute en espacio no privilegiado (de usuario))

 Podríamos decir que el SO prepara a la computadora y hace que reconozca a


la CPU, la memoria, el teclado, el monitor, las unidades de disco y los
dispositivos conectados. Además, proporciona el interface para que los
usuarios se comuniquen con la computadora y sirve de plataforma a partir de
la cual se ejecuten programas.
 Desde el punto de vista del usuario, el sistema operativo es una serie de
programas y funciones que ocultan los detalles de hardware, ofreciéndole
una vía sencilla y flexible de acceso al mismo, teniendo dos objetivos
fundamentales:

 La eficiencia en la gestión de recursos.

 La abstracción. La ocultación de los detalles de funcionamiento de los


dispositivos consiguiendo la comodidad de los usuarios. Gracias a la
abstracción, los sistemas operativos enmascaran los recursos físicos,
permitiendo su manejo con funciones más generales que ocultan las
básicas, constituyendo verdaderos recursos ficticios o virtuales, que
mejoran y son más potentes que los físicos.

 Como resumen, podemos decir que el sistema operativo persigue alcanzar la


mayor eficiencia posible del hardware y facilitar el uso del mismo a los
usuarios.

Cuando se enciende una computadora, lo primero que ésta hace es llevar a cabo
un autodiagnóstico llamado auto prueba de encendido (Power On SelfTest, POST).
Durante el POST, la computadora identifica la memoria, los discos, el teclado, el
sistema de vídeo y cualquier otro dispositivo conectado a ella. Lo siguiente que
la computadora hace es buscar un SO para arrancar (boot).

Una vez que la computadora ha puesto en marcha su SO, mantiene al menos


parte de éste en su memoria en todo momento.

El sistema operativo una iniciado va a proporcionar una interfaz de usuario,


ya sea de línea de comando o una interfaz gráfica, para que el usuario se pueda
comunicar con la computadora.
 Interfaz de línea de comando (CMD, PowerShell(cmdlet), Shell Linux(bash, sh, csh,
ksh,…))
 Interfaz gráfica del Usuario (GUI), como Windows, X-Windows (Escritorios GNOME,
KDE y Xfce) de GNU-Linux, Aqua de Mac OS X.
 Interfaz de enfoque de Usuario ZUI (Zooming User Interface), que es un adelanto lógico
de las GUI, mezclando 3D con 2D. (Experimental)

PRESTACIONES DE UN SISTEMA OPERATIVO.


Un sistema operativo ha de tener al menos las siguientes prestaciones:

 Cómodo: Ha de proporcionar un entorno adecuado para que el ordenador


sea más fácil y cómodo de utilizar.

 Eficiente: Ha de permitir que los recursos del sistema se aprovechen con


mayor eficiencia.

 Con capacidad de evolución: Debe de ser construido de tal manera que


permita la introducción de nuevas funciones en el sistema, sin que por ello se
vean afectados los servicios que proporciona.

 Encargado de administrar el hardware. Se encarga de manejar de la


manera más eficiente los recursos de la computadora en cuanto a hardware
se refiere.

 Relacionar dispositivos. Debe de encargarse de comunicar a los dispositivos


periféricos, cuando el usuario así lo requiera.

 Organizar datos para acceso rápido y seguro.


 Manejar las comunicaciones en red. Permite al usuario manejar con alta
facilidad todo lo referente a la instalación y uso de las redes de
computadoras.

 Facilitar las entradas y salidas. Debe hacerle fácil al usuario el acceso y


manejo de los dispositivos de Entrada/Salida de la computadora.
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS
ANEXO: Comparación de sistemas operativos
ARQUITECTURA DE UN SISTEMA OPERATIVO

La estructura interna de un sistema operativo es transparente al usuario,


dependiendo del sistema operativo, se estructura de una forma u otra.

 Sistemas monolíticos. El SO está formado por un conjunto de


procedimientos de forma que cada uno puede llamar a los demás cuando los
necesite. Todas las funciones que realiza el SO se llevan a cabo con un solo
programa que se ejecuta en modo kernel. Ej. Linux, UNIX, DOS, Windows 9x,
Mac OS…

 Microkernels (micronúcleo). El SO se organiza mediante una jerarquía de


capas, cada capa con una función. La esencia consiste en que solo las
funciones absolutamente esenciales del kernel del sistema operativo deben
permanecer en el microkernel. Los servicios y las aplicaciones menos
esenciales se construyen sobre el microkernel y se ejecutan en modo usuario.
Ej. Minix, AmigaOS, Symbian.
 Núcleo híbrido. Básicamente, es un micronúcleo que tienen algo de código
«no esencial» en espacio de núcleo, para que éste se ejecute más rápido de lo
que lo haría si estuviera en espacio de usuario. El concepto de núcleo híbrido
se refiere a que el núcleo en cuestión usa mecanismos o conceptos de
arquitectura tanto del diseño monolítico como del micronúcleo. Ej. Windows
NT y posteriores, Mac OS-X, ReactOS, …
FUNCIONES DE LOS SISTEMAS OPERATIVOS.
El núcleo (kernel) de un sistema operativo es un conjunto de rutinas cuya misión
es la de gestionar el procesador, la entrada/salida y el resto de los recursos
disponibles en la instalación del sistema informático. Toda esta gestión la realiza
para atender al funcionamiento y peticiones de los trabajos que se ejecutan en el
sistema. Se trata de la capa visible del software más baja del sistema que provee
y gestiona los recursos del sistema de forma segura a través de las llamadas al
sistema.

Sus principales funciones son:

 Gestión de procesos (CPU): Responsable de iniciar los programas,


finalizarlos, interrumpirlos, reanudarlos, etc. También debe permitir la
comunicación de la CPU con el exterior.
 Gestión de memoria: La memoria principal se encarga de almacenar
procesos e información de procesos que se están ejecutando en el
procesador. El SO controla la cantidad de memoria que necesita cada
programa, asigna y libera memoria, decide cuanta memoria necesita un
proceso. Permite la coexistencia de varios procesos en memoria central.
 Gestión de E/S: El SO controla los
dispositivos de E/S, se encarga de capturar
interrupciones, enviar y manejar los datos
que recoge de los dispositivos.
 Gestión de dispositivos de
almacenamiento: Define la forma en que
se almacena información en los dispositivos
de almacenamiento. Organizar la
información en archivos y carpetas y
permite el acceso rápido y eficiente a dicha
información.
 Shell: Interpreta las órdenes del usuario y las ejecuta.
La API del núcleo

Una API (Interfaz de Programación de Aplicaciones) es el conjunto de servicios


que ofrece un sistema a las aplicaciones. Las aplicaciones invocan estos servicios
a través de llamadas a procedimientos.

El conjunto de servicios que ofrece el núcleo a los procesos se denomina la API


del núcleo. Está formada por procedimientos pertenecientes al núcleo, pero que
se invocan desde un proceso cualquiera. La invocación de uno de estos
procedimientos es una llamada al sistema.

Ejemplos de llamadas al sistema en Unix son:

Manejo de Procesos: creación (fork), eliminación (kill), finalización (exit),


sincronización (wait), carga de un binario (exec).

Manejo de archivos y dispositivos: open, read, write y close.

Estas llamadas se implementan usualmente con una instrucción de máquina que


provoca una interrupción. Esta interrupción hace que el procesador real pase a
modo sistema e invoque una rutina de atención perteneciente al núcleo y que
ejecuta la llamada al sistema.

El núcleo de un sistema operativo suele operar en modo privilegiado. Al operar


en dicho modo un error de programación en el núcleo del sistema operativo
puede resultar en un error fatal del cual el sistema sólo puede recuperarse
mediante el reinicio del sistema (kernel panic o pantallazo azul).

En la actualidad, un procesador ofrece como mínimo dos modos de ejecución:

o Modo privilegiado (supervisor), que permite la ejecución de todo el


conjunto de instrucciones que ofrece el procesador (no tiene ninguna
relación con el modo "root" o administrador de algunos sistemas operativos).
o Modo no privilegiado (usuario), que tiene algunas restricciones de acceso a
aspectos del procesador o de ejecución de instrucciones.
GESTIÓN DEL PROCESADOR

En esta capa se encarga de la gestión de la CPU. Cuando arranca el ordenador se


carga en memoria y permanece allí realizando funciones básicas.

 Comunicación y conmutación de procesos. Lleva la cuenta de los procesos


activos, trasladando el control de la CPU desde un proceso a otro y
almacenando el estado del sistema (contexto) en estructuras de datos. El
planificador o asignador de recursos es el responsable de dar servicio a todos
los procesos que compitan en un momento dado por los recursos del
ordenador.
Podemos distinguir varios niveles de planificación:

Planificación a largo plazo (planificador de trabajos).

Es el encargado de crear los procesos necesarios para la realizar los


trabajos, creándose una cola donde se colocan, según se piden por el
usuario, extrayéndose de la misma cuando pueden ser cargados en
memoria.

Este nivel sólo existe en los sistemas de procesamiento por lotes donde
la decisión del proceso a ejecutar depende de las necesidades de
recursos y su disponibilidad. En los sistemas de tiempo compartido
tiene como única misión cargar los programas que se desean ejecutar
en memoria. Este nivel, es por tanto, el encargado de crear los procesos.
Planificación a medio plazo (planificador de procesos interactivos).

Decide si un proceso que está en ejecución, en estado bloqueado, o


suspendido debe ser extraído de la memoria temporalmente.
Posteriormente, cuando el sistema se encuentre más descargado,
devolverá dicho proceso a la memoria y al estado de ejecución. Esta
técnica se conoce con el nombre de swapping (intercambio).

Planificación a corto plazo (planificador del procesador).

Es el encargado de decidir cómo y cuándo tendrá acceso al procesador


un proceso que está preparado para utilizarlo. Por lo tanto, lleva a cabo
las funciones de multiprogramación, estando siempre residente en
memoria y ejecutándose con mucha frecuencia; por ello, debe ser de
ejecución muy rápida. Da servicio a los servicios interactivos, para que
el usuario no perciba que esta compartiendo el procesador con otros
usuarios.
 Control e interrupciones.
Una interrupción (IRQ) es la presencia o señal que obliga al sistema
operativo a tomar el control del procesador para estudiarla y tratarla.

El procesador sabe que software ha de ejecutar ante una interrupción.


Para ello tiene en el bloque de control del sistema (SCB) las direcciones de
rutinas que deben ejecutar ante la presencia de un determinado evento.

Cuando el procesador recibe una interrupción, suspende las operaciones en


curso, guarda el estado del trabajo y transfiere el control a una rutina
especial, conocida como controlador de interrupciones, que contiene las
instrucciones para afrontar la situación concreta que causó la interrupción.

Cada tipo de interrupción tiene asociada una rutina específica cuya


dirección conoce el sistema operativo. Cuando se produce la interrupción el
procesador pasa a ejecutar la rutina asociada a dicha interrupción y cuando
termina continua con la ejecución del proceso que quedo suspendido cuando
se produjo la interrupción.
Actualmente los sistemas operativos ejecutándose en microprocesadores con
varios núcleos, un mismo proceso puede estar dividido en diferentes hilos de
ejecución, que se planifican de forma independiente. En estos casos, puede
que un hilo de un proceso realice una solicitud de entrada/salida y que otro
hilo siga ejecutándose sin que el proceso quede bloqueado.

Ver las interrupciones asignadas a los dispositivos:

- Windows: Administrador de dispositivos de Windows, Herramientas de


información del sistema
- Linux. El archivo /proc/interrupts, lista el número de interrupciones
por CPU por dispositivo de E/S. Muestra el número de IRQ, el número
de dicha interrupción manejada por cada núcleo de CPU, el tipo de
interrupción y la lista delimitada por comas de controladores
registrados para recibir esa interrupción.
- Para visualizar el contenido del archivo: # more /proc/interrupts
 Manejo de condiciones de error y excepciones.

Trata los eventos que se puedan producir por errores que no puede controlar
el proceso en ejecución.

Los problemas que tratan las excepciones pueden ser de tres tipos:

1. Fallos hardware y software que afecten al proceso, por ejemplo una


división por 0.
2. Eventos anómalos, como el desbordamiento de una variable, o una
llamada al sistema operativo que no se ha completado
satisfactoriamente.
3. Datos de entrada incorrectos suministrados por el usuario del
programa.
GESTIÓN DE PROCESOS .

Esta capa es el encargado de la creación y destrucción de los procesos,


intercambio y detención y arranque e intercambio de mensajes.

Un proceso es un programa en ejecución junto con el entorno asociado


(registros, variables, etc.). Es decir, un proceso contiene toda la información
relativa al entorno donde se ejecuta.

La diferencia entre un programa y un proceso es que el programa es un


conjunto de instrucciones mientras que un proceso son las instrucciones
ejecutándose.

 Como se ejecuta un Proceso

Los procesos se pueden crear de varias formas:

o Cuando se arranca el SO, se ejecutan procesos necesarios para llevar a


cabo distintas funciones.
o Cuando se escribe en la línea de comandos el nombre de un programa
ejecutable, o se hace doble click sobre un icono de programa.

o Cuando un proceso hace una llamada al sistema para crear un nuevo


proceso.

Los procesos que permanecen en segundo plano para manejar ciertas


actividades como correo electrónico, páginas Web, impresiones, etc... se
conocen cómo servicios o demonios (daemons). D.A.E.MON (Disk And
Execution Monitor).

En todos estos casos el S.O. Carga en memoria un proceso propio del S.O.
Llamado “CARGADOR”.

 El SO le asigna un espacio de direcciones y lo añade a una tabla de


procesos.

 Crea el (BCP) Bloque de control de proceso y asigna PID y una prioridad.


 El proceso de divide en partes y se carga en la memoria dependiendo de la
técnica de gestión de memoria que se utilice: paginación, segmentación,
memoria virtual, etc.

 Se queda el proceso a la espera de que el planificador le asigne la CPU.

 Finalización de un proceso.

o El proceso acaba de forma normal.

o El proceso ha sufrido un error.

o Por petición del usuario del sistema. (TASKILL o el administrador de


tareas en Window, kill o el monitor del sistema en Linux) .

o Cuando un proceso hace una llamada al sistema para acabar con un


proceso.
 Estados de un Proceso.

 En ejecución: El proceso está ejecutando instrucciones en el


procesador.

 Activo o preparado: Posee todos los recursos necesarios y esta a la


espera de que el planificador le asigne CPU.

 Bloqueado: Esta a la espera de algún recurso.

Ejecución 4 Finalizado

Bloqueado
Nuevo 4 Preparado 4
 Tabla de procesos. Contiene información de cada uno de los procesos que se
están ejecutando. Su contenido puede variar dependiendo del SO. Alguno de
sus contenidos pueden ser los siguientes:

- Identificador del proceso. Número que identifica al proceso (PID)


- Información de estado del proceso. Preparado, en ejecución,
bloqueado, etc.
- Prioridad del proceso.
- Dirección de memoria donde se ha cargado el proceso.
- Tiempo utilizado por el procesador.
- Etc.
 Los procesos pueden ejecutarse de dos formas: segundo plano (background)
e interactiva o primer plano (foreground).

o Los procesos que se ejecuta en modo background, no necesitan la


interactividad con el usuario, los datos los toman de otros procesos o
archivos.

o Un proceso que se ejecuta en modo interactivo, recibe la información del


usuario por un terminal.

 Por lo general, los procesos terminan por uno de los siguientes motivos:

1. Salida normal (voluntaria). La mayoría de los procesos terminan debido la


que concluyeron su trabajo y ejecutan una llamada al sistema para indicar al
SO que terminó.

2. Salida por error (voluntaria).

3. Error (involuntaria).

4. Eliminado por otro proceso (involuntaria).


Los sistemas operativos incluyen programas tanto en modo gráfico como texto
para visualizar los procesos y ver sus estados, por ejemplo tanto Windows
(taskmgr.exe) como Linux incluyen en modo gráfico un administrador de tareas.

En modo texto existen distintos comandos para trabajar con los procesos:
Windows (tasklist, taskkill, …) Linux (ps, bg, fg, kill, top, …)

Cuando un ordenador se multiprograma, con frecuencia tiene varios procesos o


hilos que compiten por la CPU al mismo tiempo. Si sólo tenemos una CPU
disponible, hay que decidir qué proceso se va a ejecutar a continuación. La parte
del SO que realiza esta decisión se conoce cómo planificador de procesos y el
algoritmo que utiliza se conoce cómo algoritmo de planificación.
Algoritmos de planificación más comunes:

• Primero en entrar, primero en ser atendido (FCFS,First-Come, First-


Served). Se trata de un algoritmo "no apropiativo". Con este algoritmo, la CPU
se asigna a los procesos en la orden en la que la solicitan. Ningún proceso se
interrumpe.

• El trabajo más corto primero (SJF, Shortest Job First). También es


un algoritmo no apropiativo, pero en este caso supone que los tiempos de
ejecución se conocen de antemano. Cuando hay varios trabajos de igual
importancia esperando a ser iniciados en la cola de entrada, el
planificador selecciona el trabajo más corto.

• El menor tiempo restante a continuación (SRTN, Shortest Remaining


Time Next). Una versión del algoritmo del tipo "el trabajo más corto
primero". Con este algoritmo, el planificador siempre selecciona el proceso
cuyo tiempo restante de ejecución sea lo más corto. Si el nuevo proceso
precisa menos tiempo para terminar que el proceso actual, este se suspende
y el nuevo proceso se inicia.
• Planificación por turno circular (round-robin). A cada proceso se le
asigna un intervalo de tiempo, conocido como quantum, para su ejecución.
Si el proceso no termina en ese quantum, la CPU es apropiada para dársela
otro proceso.

• Planificación por prioridad. Cada proceso se le asigna una prioridad y el


proceso ejecutable con la prioridad más alta es lo que pasa a ejecutar. Para
evitar que los procesos con alta prioridad se ejecuten de manera indefinida, el
planificador puede reducir la prioridad del proceso actual en ejecución en
cada pulso de reloj.
GESTION DE MEMORIA .

Esta capa se encarga de repartir la memoria disponible entre los procesos. Se


realizan funciones de asignación y liberación de memoria, y el control de
violación de accesos a zonas de memoria no permitidas.

Objetivos.

 Ofrecer a cada proceso un espacio lógico propio. Traducir direcciones


memorias lógicas en físicas
 Proporcionar protección entre los procesos, para ello se utilizan registros
base de memoria y registros límite de ocupación, valores entre los cuales que
ningún otro proceso puede ocupar.
 Permitir que los procesos compartan memoria (DLL).

La mayoría de los sistemas operativos actuales utilizan la técnica de gestión de


memoria virtual. La memoria Virtual es una técnica de gestión de memoria que,
combinando hardware y software, permite la ejecución de programas
parcialmente cargados en memoria real. Esta forma de trabajar aporta ventajas
importantes:
 La memoria lógica puede ser mayor que la real disponible.

 Puesto que cada programa ocupa menos memoria real, el índice de multiprogramación
aumenta al poderse cargar más procesos en memoria.

 Gracias al uso de la memoria virtual se pueden ejecutar programas que a


veces son más grandes que la memoria, por lo que no queda más remedio que
ejecutarles por partes.
 El sistema operativo toma las partes del programa y de datos que son
realmente necesarios y los copia en memoria, dejando el resto en disco
(memoria virtual). Cuando necesite las partes de programa que están en
disco las trae a memoria y devuelve al disco (memoria virtual) la parte del
programa que estaba cargada según se vaya necesitando.
 El usuario no se dará cuenta de esta forma de ejecución del programa, en
todo caso puede ser una ejecución más lenta que si estuviera todo el
programa cargado en memoria. Si se cargan demasiados procesos a la vez, el
sistema se ralentiza, ya que tiene que estar pasando información
continuamente desde el disco duro a la memoria RAM o viceversa. El usuario
tiene la sensación de que todo el programa está en memoria de ahí el nombre
de memoria virtual o ficticia.

Hay dos técnicas básicas de memoria virtual: paginación y segmentación.

 La paginación permite asignar la memoria de forma discontinua. Con


este fin la memoria física se divide en trozos de tamaño fijo llamados
armazones, marcos o frames y la lógica (los programas) en bloques del
mismo tamaño llamados páginas.

El único inconveniente de paginación pura es que todas las páginas de un


proceso deben estar en memoria para que se pueda ejecutar. Esto hace
que si los programas son de tamaño considerable, no puedan cargarse
muchos a la vez, disminuyendo el grado de multiprogramación del
sistema. Para evitar esto, se permitirá que algunas páginas del proceso
sean guardadas en un espacio de intercambio (en memoria secundaria
swapping o memoria virtual) mientras no se necesiten.
Hay varios algoritmos de gestión que permiten administrar las páginas
que deben ser retiradas para que se carguen otras que son solicitadas. Por
ejemplo:

o LRU: la menos usada recientemente.


o FIFO: la primera en entrar la primera en salir, tiene una variación la
de la segunda oportunidad, solo sale la página si es dos veces
referenciada.
o Etc.
Ejemplo: Tenemos una memoria física (RAM) de 32 KB y un programa que
ocupa 64 KB. El programa se divide en páginas de 4 KB y se carga en
memoria virtual todo el proceso, llevando solamente a la memoria RAM
la parte del proceso (código que necesita ser ejecutado). Para poder
localizar las páginas e intercambiarlas con la memoria RAM se crea una
tabla de páginas que relaciona las páginas cargadas en la memoria virtual
con los marcos de página de la memoria física. Así por ejemplo la página 0
está ubicada en el marco de páginas 5. La representadas con una X indica
que no está ubicadas en la memoria física, si se necesita ejecutar una parte
de código que no ese encuentra en la memoria física, se intercambia este,
por una de las página no necesaria, actualizando la tabla de páginas con la
dirección del marco de página donde se ubique el código trasegado.
 Segmentación: proporciona al proceso espacios de direcciones
completamente independientes (segmentos). La diferencia con respecto a
la paginación es que los segmentos son de tamaño variable. Tiene el
problema de la fragmentación externa.

Existe una alternativa, la segmentación-paginada que consiste en dividir el


segmento en marcos de página evitando en parte el problema de la
fragmentación externa.
Otra técnica muy similar a la técnica de memoria virtual y utilizada en sistemas
operativos UNIX y Linux en la técnica de intercambio o swap. ¿Qué hacer si no
caben todos los programas en memoria principal? Hacer uso de intercambio
(swapping)

 Swap  partición de disco que almacena imágenes de procesos

 Swap out  Cuando no caben en memoria procesos activos, se “expulsa”


un proceso de memoria principal, copiando su imagen a swap (área de
intercambio).

 Swap in  Cuando haya espacio en memoria principal, se intercambia el


proceso a memoria copiando imagen desde swap.
GESTIÓN DE DISPOSITIVOS .

Se encarga de la gestión de las entradas/salida (E/S) en función de los


dispositivos existentes. Creación de procesos de E/S, asignación y liberación de
los dispositivos de E/S y planificación de la E/S.
Los controladores de dispositivo (device drivers)

Controladores

Un controlador de dispositivo, es un programa añadidos al núcleo del sistema


operativo, concebidos inicialmente para gestionar periféricos y dispositivos.
Permite al sistema operativo interactuar con un periférico, proporcionando una
interfaz para usarlo.

Existen tantos tipos de controladores como tipos de periféricos, y es común


encontrar más de un controlador posible para el mismo dispositivo, cada uno
ofreciendo un nivel distinto de funcionalidades. Por ejemplo, aparte de los
oficiales (normalmente disponibles en la página web del fabricante), se pueden
encontrar también los proporcionados por el sistema operativo, o también
versiones no oficiales hechas por terceros.

Debido a que el software de controladores de dispositivos se ejecuta como parte


del sistema operativo, con acceso sin restricciones a todo el equipo, resulta
esencial que sólo se permitan los controladores de dispositivos autorizados.

Funciones de un controlador o driver.


 Definir las características del dispositivo periférico para el sistema operativo y los procesos de
usuario.
 Asignar valores iniciales adecuados a los registros asociados al dispositivo en el momento de
arranque o encendido del sistema.
 Permitir que un proceso pueda acceder al dispositivo (OPEN), o bien retirarle dicho permiso
(CLOSE).
 Procesar las operaciones de E/S solicitadas por cualquier proceso que tenga permitido el
acceso al dispositivo (READ y WRITE).
 Cancelar toda operación de E/S en el momento en que sea necesario (KILL o CANCEL)
 Procesar las interrupciones hardware generadas por el dispositivo periférico.
 Tratar los errores y estado del dispositivo y comunicárselo al sistema operativo para que este a su
vez avise al usuario.
O t r a s t é c n ic as . B uf f e r i n g y s p oo l i n g y D M A
Buffering

- Se utiliza con dispositivos lentos, para que el procesador no tenga que


esperar mientras se reciben datos del dispositivo.
- Utiliza una memoria intermedia RAM o disco (buffer) para depositar los
datos leídos o por grabar, mientras el procesador se ocupa de otro
proceso o de procesar la información anteriormente recibida.
- Una vez lleno el buffer, el procesador recoge la información contenida
en el mismo para procesarla indicando al dispositivo que puede seguir
transmitiendo información hacia el buffer.
- Los buffers se utilizan, a menudo, conjuntamente con E/S de hardware,
tal como unidades de disco, enviar o recibir datos a/o desde una red, o
reproducción de sonido en un altavoz.
- Una caché puede ser usada a veces como un buffer, y viceversa. Sin
embargo, una caché opera con el supuesto de que los mismos datos van
a ser utilizados múltiples veces.
Spooling (Simultaneous Peripheral Operations On-Line)

- Se refiere al proceso mediante el cual la computadora introduce


trabajos en un buffer (un área especial en memoria o en un disco), de
manera que un dispositivo pueda acceder a ellos cuando esté listo.
- El spooling es útil en caso de dispositivos que acceden a los datos a
distintas velocidades. El buffer proporciona un lugar de espera donde
los datos pueden estar hasta que el dispositivo (generalmente más
lento) los procesa. Esto permite que la CPU pueda trabajar en otras
tareas mientras que espera que el dispositivo más lento acabe de
procesar el trabajo.
- La aplicación más común del spooling es la impresión. En este caso, los
documentos son cargados en un spool, que habitualmente es un área en
un disco, y la impresora los saca de éste a su propia velocidad.
E/S mediante el uso de DMA (Acceso directo a memoria)

- Permite a cierto tipo de componentes de una computadora acceder a la


memoria del sistema para leer o escribir independientemente de la
unidad central de procesamiento (CPU) principal.
- Muchos sistemas hardware utilizan DMA, incluyendo controladores de
unidades de disco, tarjetas gráficas y tarjetas de sonido.
- DMA permite a dispositivos de diferentes velocidades comunicarse sin
someter a la CPU a una carga masiva de interrupciones.
- Una transferencia DMA consiste principalmente en copiar un bloque de
memoria de un dispositivo a otro. Un ejemplo típico es mover un
bloque de memoria desde una memoria externa a una interna más
rápida. Tal operación no ocupa al procesador y como resultado éste
puede ser planificado para efectuar otras tareas.
- Las transferencias DMA aumentan el rendimiento del ordenador.
GESTIÓN DE LA INFORMACIÓN .

Entre sus cometidos está:

 La protección de la información.
 Creación y eliminación de ficheros y directorios.
 Apertura lectura, escritura y cierre de ficheros.
 Protección de los accesos.
 La gestión del los nombres de ficheros.
 Métodos de acceso a los ficheros.
 Gestión del espacio libre en disco..
 Planificación de los discos, etc.
E l s is t e m a d e a r c hi v o s

 El sistema de archivos es el conjunto de módulos que se ocupa de la


gestión de los archivos y directorios (o carpetas).
 Un archivo es un contenedor de bytes al que le asociamos un nombre y
unas propiedades (tamaño, tipo, fecha, permisos, etc) y un formato
definido por la aplicación que lo crea.
 La mayoría de los sistemas operativos manejan su propio sistema de
archivos.
 Existen diferentes Sistemas de Archivos, es decir, existen diferentes
formas de organizar la información que se almacena en las memorias de
los ordenadores (normalmente discos). Ejemplos de sistemas de archivos
FAT16, FAT32, EXT2, EXT3, EXT4, NTFS, etc.

Anexo: Sistemas e archivos (Wikipedia)

 El sistema de archivos gestiona la estructura lógica de datos del disco.


 Microsoft a través del SO MS-DOS dio a conocer el popular sistema de
archivos de las tablas FAT (tablas de asignación de archivos), que en la
actualidad han sido reemplazadas casi en su totalidad por NTFS (Sistema de
ficheros de NT) mucho más avanzado.
 Los sistemas operativos de código abierto se basan principalmente en el
sistema de archivos extendido o ext (actualmente en su cuarta versión,
ext4) y en el sistema de archivos Reiser (ReiserFS).
Las formas más comunes de almacenar archivos son:

Lista de enlaces: FAT


Cada disco dispone de una tabla con tantos elementos como bloques
físicos. Cada elemento de la tabla corresponde con un bloque y éstos
contienen un puntero al lugar donde se encuentra el siguiente bloque del
archivo. Cuando se abre un archivo, el sistema de archivos carga en
memoria principal la lista de enlaces, obteniendo información de los
bloques que ocupa el archivo. Como inconveniente, si el disco es muy
grande, la lista de enlaces ocupa una capacidad excesiva en memoria
principal. Los SO MS-DOS y Windows utilizan las listas de enlaces
denominadas FAT16 y FAT32.
Sistema de archivos NTFS:
Utilizado por Windows NT, y a partir de Windows XP. El elemento
fundamental es la tabla maestra de ficheros (MFT) que tiene un
elemento de longitud variable por archivo o carpeta.

Estructura de un volumen NTFS


Sector de Tabla maestra de Archivos del Área de datos
arranque ficheros (MFT) sistema

Esta tabla MFT contiene:


 Numero de entrada MFT
 Nº de bytes usados por registro
 Nombre del archivo
 Información de los atributos del sistema.
 Información sobre seguridad.
 Datos. Contiene punteros a las unidades de asignación donde realmente se
encuentran los datos.
Fichero de índices o i-nodos: EXT2, EXT3, EXT4
Es la forma de gestionar los archivos por el sistema operativo UNIX
/LINUX. Cada archivo tiene asociado un número de identificación que
apunta a la tabla de un nodo de información o i-nodo que es una tabla de
tamaño fijo que contiene los atributos del archivo y las unidades de
asignación del archivo. Tamaño, Tipo, Permisos, ID Propietario, ID Grupos,
Fecha creación, modificación, índice a los bloques de datos
El UNIX mantiene toda la información propia del archivo, excepto su
nombre, en su i-nodo correspondiente. El nombre se encuentra en la
entrada correspondiente del directorio al que pertenece.

i-nodo Nombre de archivo Nodo-i Tamaño UID GID …


20
2 Fich1.dat
5 Datos.txt

Ej. Comando para obtener información del i-nodo de un archivo


stat -i archivo.ext
T i p os d e s i st e m a s d e a r ch i v os

FAT 16 (File Allocation Table, tabla de asignación de archivos). Original de MS-


DOS. Utiliza 16 bits para cada elemento de la FAT.

Características
Longitud máxima del nombre del 8 + 3 de extensión. 255 caracteres
archivo cuando se usan LFNs (Long File Names)
Tamaño máximo del archivo 2 GB.
Tamaño máximo del volumen 2 GB
Clusters demasiado grandes. 32K

VFAT. Incluida en Windows 95. Igual que la FAT 16, pero con soporte para
nombres de archivos largos 255 caracteres.
FAT 32. (File Allocation Table, tabla de asignación de archivos). Incluida a partir
de Windows 95 OSR2 y Windows 98 y Utiliza 32 bits en cada elemento de la
FAT.

Características
Longitud máxima del nombre del 8 + 3 de extensión. 255 caracteres
archivo cuando se usan LFNs (Long File
Names)
Tamaño máximo del archivo 4 GB.
Tamaño máximo del volumen 2 TB (pero Windows solo permite 32 GB por
decisión de Microsoft)
Clusters demasiado grandes. Clusters más pequeños 4KB.
Caracteres admitidos en los Cualquier carácter ASCII estandar
nombres de fichero excepto: * . " / \ [ ] : ; | = ,
exFAT. (Extended File Allocation Table, tabla extendida de asignación de
archivos) es un sistema de archivos, patentado y privativo de Microsoft,
especialmente adaptado para memorias flash

Características
Longitud máxima del nombre del 255 caracteres Unicode
archivo
Tamaño máximo del archivo 256 GB
Tamaño máximo del volumen 16 TB
NTFS. (NT File System). Sistema de archivo de NT, Windows Server, Windows
XP, Vista, 7/8/10.

Características NTFS
Longitud máxima del nombre del 255 caracteres Unicode
archivo
Tamaño máximo del archivo 16 TB.
Tamaño máximo del volumen 256 TB
Caracteres permitidos en nombres Cualquier carácter excepto / \: * ? "
de archivo <>|
Aporta seguridad al sistema
Permite reparto de unidades en
varios discos duros (discos
dinámicos)
Permite definir el tamaño del A partir de 512 bytes (tamaño de un
cluster sector). Por defecto es de 4 KB.
Utiliza distintas técnicas para evitar Incorporación de mejoras en nuevas
la fragmentación versiones de Windows
Compresión de archivos
Permite cuotas de disco
ReFS (Resilient File System). Sistema de archivos residente. Sistema de archivo de
Microsoft a partir de Windows server 2012, Windows 10 y Windows server
2016.  Diseñado para trabajar principalmente con dispositivos de
almacenamiento de los datos. Incluye gran parte de las características de NTFS.

Características ReFS
Longitud máxima del nombre del 255 caracteres Unicode
archivo
Tamaño máximo del archivo 18 EB (exaBytes)
Tamaño máximo del volumen 4,7 ZB (Zettabytes)
Maximizar la disponibilidad de los Realiza todas las operaciones de
datos reparación de datos en línea, no tiene un
comando chkdsk sin conexión.
Escalar de manera eficiente a Está diseñado para funcionar
conjuntos de datos de gran tamaño correctamente con conjuntos de datos
extremadamente grandes, petabytes y
en diversas cargas de trabajo
volúmenes aún mayores, sin afectar al
rendimiento.
Ofrecen mayor resistencia a errores Proporciona mayor integridad de los datos
de dispositivos de almacenamiento
Ext2, Ext3 y Ext4. Utilizado por el sistema operativo LINUX. Ext4 y ext3 son
versiones mejorada de sus antecesoras.

Características Ext2 Ext3 Ext4


Longitud máxima del nombre del 255 bytes 255 bytes 255 bytes
archivo
Tamaño máximo del archivo 2 TiB 2 TiB 16 TiB
Tamaño máximo del volumen 32 TiB 32 TiB 1 EiB
(dependiendo del tamaño del cluster)
Aporta seguridad al sistema.
Permite cuotas de disco
Tiene gran estabilidad

ReiserFS. Utilizado por el sistema operativo LINUX.


Características ReiserFS
Longitud máxima del nombre del archivo 226 bytes
Tamaño máximo del archivo 8 TiB (v3.6), 2 GiB (v3.5)
Tamaño máximo del volumen 16 TB
Buen rendimiento de acceso a los datos.
Rápida recuperación de datos ante la caída del sistema
HFS Plus o Mac OS plus (Sistema de Archivos Jerárquico o Hierarchical File
System). Desarrollado por Apple Inc. para Mac OS. Distintas versiones: (Mac OS X
v10.0-10.1.5),(Mac OS X v10.2-10.2.8),(Mac OS X v10.3-10.5.2),(Mac OS X v10.5.3)

Características HFS+
Longitud máxima del nombre del archivo 255 bytes
Tamaño máximo del archivo (depende de las versiones) 2 | 8 | 16 TB | 8 EiB
Tamaño máximo del volumen (depende de las versiones) 2 | 8 | 16 TB | 8 EiB
Aporta seguridad al sistema.

APFS (Apple File System) es un nuevo sistema de archivos desarrollado por


Apple con el que la compañía busca sustituir el formato HFS+ a partir de la
versión macOS High Sierra. En versiones anteriores no funciona. Optimizado
para disco SSD y almacenamiento flash.
MODOS DE EXPLOTACIÓN DEL SISTEMA

 Dependiendo del tipo de trabajo y los objetivos que debe cumplir, cada
sistema operativo que utiliza la multiprogramación para dar el mejor servicio
a los usuarios a quienes va destinado, podemos clasificarlos como:

o Sistemas de procesamiento por lotes


o Sistemas de tiempo compartido
o Sistemas de tiempo real.
PROCESAMIENTO POR LOTES (BATCH).
 En el proceso por lotes cada trabajo realiza un conjunto de pasos
relacionados entre sí, asemejándose cada uno de ellos a un paquete de
instrucciones que realizan las operaciones requeridas.
 Muchos de los trabajos se pueden agrupar en paquetes relacionados entres sí,
y se juntan para formar un lote.
 Por ejemplo el primer paquete de un lote podría ser la compilación de un
programa fuente, el siguiente el linkado del programa objeto generado y
finalmente la ejecución del programa ejecutable resultado de la compilación.
 Los procesos por lotes suelen de cumplir los siguientes objetivos:
 No existe la intervención del usuario durante la ejecución de los procesos
que forman el lote, por lo que los datos se les suministraban a los procesos
antes de su ejecución o de forma no interactiva durante el proceso. Por
ejemplo a través de ficheros de datos.
 Procesamiento de trabajos largos.
 No existen restricciones de tiempo, es decir no importa el tiempo que se
necesite para llevar a cabo el trabajo.
EJEMPLO DE FICHERO POR LOTES

WINDOWS (Ficheros BAT)


@ECHO OFF
REM Realiza un ping a la red indicada cuyas IPs estén entre 1 y 5
SET RED=127.0.0.
FOR /L %%H IN (1, 1, 5) DO ( ping -n 1 %RED%%%H >nul && echo IP visible:... %RED%%%H >>
PingRed.log )

LINUX (Shellscript)
#!/bin/bash
red=127.0.0.
for i in $(seq 1 1 5)
do
ping -c 1 $red$i > /dev/null
[ $? -eq 0 ] && echo IP Visible:… $red$i >>pingRed.log
Done
TIEMPO COMPARTIDO (TIME SHARING).
 El tiempo compartido permite compartir los recursos entre uno o varios
usuarios.
 Los procesos interactúan con el usuario, pidiendo datos al usuario durante la
ejecución de los mismos utilizando la pantalla y el teclado y también pueden
devolver resultados al usuario durante su ejecución.
 Ahora, la entidad básica a controlar por el sistema no son los trabajos, sino
las sesiones.
o Una sesión comprende el intervalo de tiempo transcurrido desde el
momento en que el usuario se identifica en el ordenador hasta que lo
abandona.
o Permite varias sesiones de usuarios diferentes.
o Durante estas sesiones se pueden ejecutar distintos procesos
simultáneamente (monoprocesador) o paralelamente
(multiprocesador).
o Cuando se inicia una sesión, el sistema operativo activa un programa,
conocido como intérprete de comandos que es el que permite la
comunicación entre el usuario y el sistema operativo.
 Este programa es el encargado de transmitir al sistema los
procesos que quiere ejecutar el usuario.
 El usuario puede cambiar de un proceso a otro.

Los sistemas de tiempo compartidos han de tener las siguientes características:


 Deberán ser conversacionales.
 Permitir el acceso al sistema de varios procesos a la vez, compartiendo el
microprocesador.
 Que el tiempo de respuesta del sistema ante una petición del usuario sea
lo más corto posible.

Es muy normal que los sistemas permitan tanto el procesamiento por lotes
y el proceso a tiempo compartido. De tal forma que los usuarios lancen procesos
por lotes y a su vez puedan seguir trabajando.
TIEMPO REAL (REAL TIME).

 El procesamiento en tiempo real es un tipo de proceso de datos que responde


al momento a comandos o a la entrada de datos.
 Se suelen emplear en aplicaciones destinadas al control de instalaciones.
 Su funcionamiento se basa en responder a ciertos sensores o eventos que
obtienen los datos de entrada al sistema, procesarlos y actuar rápidamente
sobre el sistema a controlar.
 Podemos decir que un sistema trabaja en tiempo real si su tiempo de
respuesta permite afectar (controlar y regular) al medio en el cual opera.

 Sus principales características son:
 Tiempo de respuesta inmediato o cumplir restricciones temporales.
 La información debe estar permanentemente actualizada para poder dar
respuestas correctas.
 El sistema puede asignar procesos de prioridad en tiempo real, para así
estar permanentemente pendiente de cualquier evento de entrada de los
sensores o eventos que estén controlando.
TIPOS DE SISTEMAS OPERATIVOS

EN FUNCIÓN DEL NÚMERO DE USUARIOS SIMULTÁNEOS.

- Monousuario: cuando sólo puede trabajar un usuario con el ordenador.


Todos los recursos del sistema estarán disponibles para él en exclusiva. Ej.
MS-DOS , Windows 9x, XP.

- Multiusuario: cuando varios usuarios pueden ejecutar procesos distintos


sobre la misma CPU y compartir el uso de los recursos existentes en el
sistema de forma simultánea Windows Server, Linux, UNIX.
EN FUNCIÓN DEL NÚMERO DE PROCESOS SIMULTÁNEOS.

- Monotarea: cuándo sólo se puede ejecutar un proceso y hasta que éste no


finalice no puede iniciarse el siguiente y solamente es capaz de manejar un
solo microprocesador.

- Multitarea: cuando se pueden ejecutar varios procesos simultáneamente.


Estos procesos compartirán el tiempo de uso del procesador hasta la
finalización de cada uno de ellos.
EN FUNCIÓN DEL NÚMERO DE PROCESADORES EN USO SIMULTÁNEO .

- Monoproceso: cuando se dispone de un único procesador, pero pueden


permitir simular la multitarea.

- Multiproceso: cuando se han instalado varios procesadores en un mismo


ordenador y el S.O. es capaz de utilizarlos simultáneamente

Generalmente estos sistemas trabajan de dos formas: simétrica o


asimétricamente.

Asimétrica (ASMP) multiproceso asimétrico. Uno de los procesadores


está dedicado para el sistema y los demás para las aplicaciones.

Simétrica (SMP) multiproceso simétrico. Cuando se trabaja de manera


simétrica, los procesos o partes de ellos (threads - hilos) son enviados
indistintamente a cualquiera de los procesadores disponibles, teniendo,
teóricamente, una mejor distribución y equilibrio en la carga de trabajo
bajo este esquema. Se dice que un hilo es una unidad de ejecución, una
parte de un programa o incluso la totalidad del programa si la aplicación
no dispone de multi-hilo.

Multi-hilo (multihtread) significa que varias tareas de una misma


aplicación pueden ejecutarse simultáneamente.

El multi-hilo se implementa en un programa a la hora de desarrollarlo


y es gestionado por el SO. Implica que en el interior de una misma
aplicación puedan efectuarse varias tareas de forma pseudoparalela.
Por ejemplo cuando se escribe un texto con un procesador de texto, el
programa muestra los caracteres con el formato deseado y al mismo
tiempo hace correcciones ortográficas.

Afinidad.- Poder vincular un proceso concreto a un procesador.


SEGÚN EL TIPO DE APLICACIONES

- Sistemas de propósito general. En este tipo se engloban la mayoría de


los sistemas operativos. Permiten cualquier tipo de instalación ya sea
monousuario, multiusuario, de tiempo compartido, de tiempo real ,etc.

Este tipo de sistemas operativos se emplea en instalaciones informáticas


que tengan que dar servicio a un gran número de usuario con una amplia
variedad de tareas

- Sistemas de propósito especial. Son los construidos para una


determinada aplicación informática. No suelen ser sistemas comerciales ni
de gran difusión al estar creados para una aplicación específica. Ejemplos
de tales aplicaciones incluyen control industrial, control de vuelo y
simulaciones en tiempo real, etc.
POR SU DISPONIBILIDAD

- Sistemas operativos propietarios. (También llamado privativo de


código cerrado o software no libre) es cualquier programa informático en
el que el usuario tiene limitaciones para usarlo, modificarlo o
redistribuirlo, que destaca la manutención de la reserva de derechos sobre
el uso, modificación o redistribución del software.

- Sistemas operativos libres. El software libre es aquel que puede ser


distribuido, modificado, copiado y usado; por lo tanto, debe venir
acompañado del código fuente para hacer efectivas las libertades que lo
caracterizan.
TEMA 5. EL SOFTWARE

Denominamos software a cualquier componente lógico (programa o conjunto de


programas) de ordenador. Se puede clasificar en tres categorías: software de
sistema, software de programación y software de aplicación.

TIPOS DE SOFTWARE
SOFTWARE DE SISTEMA

Es el conjunto de programas encargados de la gestión interna de la


computadora, es decir, de la unidad central de proceso, la memoria central y los
periféricos. El software de sistema le procura al usuario y programador
adecuadas interfaces de alto nivel, herramientas y utilidades de apoyo que
permiten su mantenimiento.

 Sistemas operativos.
 Controladores de dispositivos.
 Utilidades.- Son programas auxiliares del sistema operativo o de terceros,
cuya función principal es la de facilitar el trabajo del usuario en la
optimización de los recursos del ordenador.
 Administración de Archivos: hacen más fácil el manejo de los archivos.
Muchos programas fueron escritos para ayudar al usuario a encontrar
los archivos, crear y organizar directorios, copiar, mover y renombrar
archivos.
 Administración de Disco: involucran el formateo y la
desfragmentación de los discos. Desfragmentar significa poner los
archivos en el disco de manera que todo el conjunto quede en
secuencia. Esto reduce el tiempo de acceso a los archivos.
 Administración de Memoria: un software que maneja los programas
de la RAM. Mueven ciertos ítems residentes en la memoria. Esto puede
aumentar con efectividad la memoria disponible reuniendo todas las
porciones no utilizadas en un solo lugar, optimizando la memoria.
 Utilidades de diagnostico de red. Software para el análisis de la red u
comprobar su correcto funcionamiento.
 Backup: Programas que permiten realizar copias de seguridad de los
datos y restaurarlas. El software comprimirá ésos datos para ocupar el
menor espacio posible en la memoria secundaria (discos).
 Recuperación de Datos: tratarán de recuperar archivos borrados o
dañados.
 Compresión de Datos: reduce el espacio que ocupa un fichero a la
hora de almacenarlo.
 Antivirus: Los virus son programas que se introducen en nuestros
ordenadores de formas muy diversas y que pueden producir efectos no
deseados y nocivos.
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 Los compiladores son programas utilizados para la traducción de
programas fuente a lenguaje máquina. Hay multitud de estos programas ya que cada
lenguaje de programación tiene el suyo o incluso varios por cada lenguaje. C, C++, Java,
COBOL, Pascal, VisualBasic, etc.
 Intérpretes. Los intérpretes, menos utilizados, no traducen íntegramente el
programa, sino que cuando se ordena su realización, el intérprete va traduciendo y
ejecutando cada una de sus instrucciones. Ejemplos VisualBasic, JavaScript, etc.
 Enlazadores.- Utilidades para incluir librerías a los programas
 Depuradores.- Utilidades de para corrección de errores en los programas.
 Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores
herramientas, usualmente en un entorno visual, de forma tal 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 DE APLICACIÓN

Está constituido por los programas que dirigen el funcionamiento de la


computadora para la realización de trabajos específicos, denominados
aplicaciones.

 Aplicaciones ofimáticas. (Procesadores de texto, hojas de cálculo,


presentaciones, etc)
 Software educativo
 Software empresarial (Contabilidad, nominas, seguridad social, etc)
 Bases de datos
 Telecomunicaciones (Navegadores, ftp, email, etc.)
 Videojuegos
 Software médico
 Software de Cálculo Numérico y simbólico.
 Software de Diseño Asistido (CAD)
 Software de Control Numérico (CAM)
 Etc.
LICENCIAS DE SOFTWARE

LA PROPIEDAD INTELECTUAL

La propiedad intelectual constituye el mecanismo más eficaz de protección e


incentivación de la creatividad humana, al reconocer al autor del esfuerzo
creativo la capacidad exclusiva de disponer y explotar el resultado de tal
esfuerzo (la obra).

La creación de software de ordenador requiere, como norma general, de


importantes esfuerzos de inversión, técnicos, materiales y humanos. Por dicho
motivo, la normativa española tipifica dentro del ámbito Penal como delitos, las
infracciones contra la Propiedad Intelectual del software << © copyright >> (artículos
270 y 271).

CÓDIGO PENAL. Ley Orgánica 10/1995, de 23 noviembre


“Será castigado con la pena de prisión de seis meses a dos años y multa de 12 a 24
meses quien, con ánimo de lucro y en perjuicio de tercero, reproduzca, plagie,
distribuya o comunique públicamente, en todo o en parte, una obra literaria,
artística o científica, o su transformación, interpretación o ejecución artística
fijada en cualquier tipo de soporte o comunicada a través de cualquier medio, sin
la autorización de los titulares de los correspondientes derechos de propiedad
intelectual o de sus cesionarios …”

A las anteriores penas, hay que añadir las indemnizaciones previstas por la
vigente Ley de Propiedad Intelectual, y que establece la obligación de
indemnizar por los daños y perjuicios causados por cualesquiera infracciones a
los derechos de propiedad intelectual regulados por dicha ley, incluidos los
derechos de propiedad intelectual sobre los programas de ordenador.
LICENCIAS DE USO
- Una licencia de software representa el permiso del fabricante para la
instalación y utilización de su producto en un ordenador o sistema
informático.
- La licencia contiene los términos y condiciones que regulan la utilización del
software, incluido el ámbito de los derechos de la licencia y cualquier
limitación relacionada con esta, como su propósito, el lugar de uso y el
hardware que se empleará, plazos, etc.
- Una licencia de software otorgará un derecho no exclusivo al licenciatario (la
empresa usuaria) para que un número concreto de usuarios utilicen una
copia del software. Salvo que se indique lo contrario, estará estrictamente
prohibida la copia y distribución de dicho software a otros usuarios u
ordenadores.
- Cuando adquirimos un programa, sea bajo el tipo de licencia que sea, lo
que adquirimos es una licencia de uso, nunca el programa en sí (derecho
de propiedad), estando en todo momento sujetos a las normas y límites
que dicha licencia indique.
- La única excepción a lo anterior se producirá cuando se haya desarrollado un
software a medida en nombre de una empresa o particular.

Comprobantes de licencias.
- Es de vital importancia poder probar que se cuenta con licencias válidas de
todos sus activos de software.
- El no hacerlo podría conducir hacia los riesgos legales.
- Para que conste la prueba de compra y su derecho legal a utilizar el software,
deberá asegurarse que se tiene:

 Soporte original (CD’s de instalación)


 Contratos de licencia, a menudo denominado "Acuerdo de licencia de
usuario final" o EULA (End User License Agreement)
 Certificado de autenticidad
 Manuales y guías de usuario
 Copias impresas de cualquier acuerdo de licencia formalizado “online”
 Facturas y recibos de compra originales de las licencias adquiridas.
TIPOS DE LICENCIA
De software propietario o privativo:

- Generalmente limitan el uso a las especificaciones del contrato y prohíben


la redistribución, duplicación y modificación.

De software libre (Open Source):

- Software distribuido y desarrollado libremente. Es aquel que garantiza las


cuatro libertades del software (según Stallman):
1. Libertad de usar el programa con cualquier propósito.
2. Libertad para distribuir copias del programa con las que ayudar a otros
usuarios.
3. Libertad de estudiar cómo funciona y modificarlo para adaptarlo a las
necesidades del usuario
4. La libertad de mejorar el programa y hacer públicas esas mejoras para
beneficio de otros usuarios.
Las libertades 3 y 4 requieren el acceso al código fuente por lo que en ese caso el
software libre debe ser también software de código abierto.
L i c e n c ia s ún i ca s (E U L A , O E M )
- Estas licencias se entregan con productos completamente integrados.
- Dichos productos se incluyen en los ordenadores que vienen preinstalados
con software o que se suministran a través de un contrato de distribución on-
line. Si el usuario no acepta los términos del acuerdo de licencia, la instalación
se cancela.
- No suelen requierir la firma de un contrato escrito.
- Los programas adquiridos bajo este tipo de licencia NO se pueden vender ni
ceder a terceros, salvo en las mismas condiciones en las que se compraron (es
decir, como parte de un equipo).

Li c e n c ia s Re ta i l

- Son las versiones de venta de software. En este caso el programa es de la


entera propiedad del usuario, pudiendo este cederlo libremente a terceros o
venderlo.
L i c e n c i a s p o r vo l u m e n

- Es un tipo de licencia de software destinado grandes usuarios (empresas),


normalmente bajo unas condiciones similares a las de las licencias OEM,
aunque sin estar supeditadas a equipos nuevos.
- Básicamente se trata de estipular un determinado número de equipos que
pueden utilizar el mismo código de licencia.
- Normalmente estas licencias se venden en paquetes de X número de licencias,
por ejemplo en paquetes de 25 licencias.
L i c e n c ia s co nc u r re n t e s
- Las licencias concurrentes son una variante de la licencia por volumen.
- Permiten a los usuarios instalar un número máximo de copias en un número
determinado de ordenadores, mientras se limitan los usuarios que pueden
utilizar ese software en cualquier momento.
o Ej. Una empresa a la que se le permite instalar una aplicación de
software en 100 ordenadores, pero sólo 50 de los usuarios podrán
utilizar el producto en cualquier momento. El acceso se controla
normalmente a través de un tipo de software de gestión de licencias.
L i c e n c i a s p o r p u es t o y p o r s e r v i d o r

En los entornos en red, se suelen requerir licencias por puesto o por servidor
para utilizarse con ciertos tipos de software de servidor.

Por servidor. Las licencias por servidor son un tipo de licencia


concurrente. Las licencias por servidor sólo permiten que un número
máximo de usuarios autorizados accedan al mismo tiempo al servidor.

Por puesto. Las licencias por puestos requerirán generalmente una


licencia de acceso para cada equipo (PC, etc.) que acceda al servidor. En
este caso los servidores no disponen de ninguna restricción en términos
de conexiones máximas simultáneas.
L i c e n c i a d e p r o v ee d o r d e s e r v i ci o d e a p l i ca c i o n es ( A SP )

- El modelo de licencias ASP otorga el derecho a utilizar aplicaciones de


software instalados en servidores remotos, y no en ordenadores o servidores
locales de la empresa.

L i c e n c i a s d e s o ft w a r e p a ra i n s t i t u c i o n e s e d u c a t i v a s y o r g a n i s mo s
p ú bl i c os

- Por lo general, esas licencias de software tienen algunos términos y


condiciones específicos asociados a su uso.
- Las entidades que puedan optar a dichas licencias especiales deberán ser
capaces de demostrar que cumplen los criterios necesarios para poder optar
a los descuentos.
L i c e n c i a s p a r a d e s a r r o l la d o r es y p ro g r a m a s d e c o la b o r a c i ó n

- Los editores de software pueden ofrecer programas de licencias para


desarrolladores de software, minoristas o proveedores de soluciones.
So ft wa re li bre

- Software libre no implica en ningún momento que este sea o deba ser
gratuito, porque no es una cuestión de precio, sino de libertad.
- Es perfectamente compatible el que se trate de un software libre y a su vez
sea un programa comercial, en el que se pida un pago por licencia.
- Algunas licencias de software libre incluyen copyleft y esto requiere que
todas las versiones futuras sean también distribuidas con estas libertades.

Anexo: Comparación de licencias de software libre


Freeware (software gratis)

- Define un tipo de software que se distribuye sin costo, disponible para su


uso, pero que mantiene el copyright, por lo que no se puede modificar o
utilizar libremente como ocurre con el software libre.

- Puede ser bajo determinadas condiciones

- El software incluya algún tipo de publicidad

- Limitación referente al tipo de usuario al que va destinada. Un


ejemplo de esto sería que se autoriza su uso a particulares, pero no a
empresas o a organismos oficiales.

- Este tipo de licencia suele incluir una clausula en la que se especifica


la prohibición de la venta de dicho software por parte de terceros.
Shareware:

- Es un tipo de distribución en el que se autoriza el uso de un


programa para que el usuario lo evalúe y posteriormente lo
compre. El software con licencia Shareware tiene unas
limitaciones que pueden ser de varios tipos.

- Trial.- Limitación en el tiempo de utilización

- Limitación en el funcionamiento de sus funciones y opciones,


pero suele tratarse de software operativo.
Copyleft:

- El término Copyleft se puede interpretar como Copia permitida, en


contraposición a Copyrigth, o Copia reservada (derechos de autor).

- Se refiere a la autorización por parte del propietario de la licencia


para su copia, modificación y posterior distribución.

El Software libre está sujeto a su vez a una serie de licencias, cada una de ellos
con sus respectivas normativas:

Licencias GPL:
- En las licencias GPL (Licencia Pública General GNU, también
conocidas como simplemente GNU)
- El autor conserva los derechos de autor (copyright).
- Permite la redistribución y modificación, pero controlando que
todas las versiones modificadas del software permanecen bajo
los términos más restrictivos de la propia licencia GNU GPL.
- Un programa creado con partes no licenciadas GPL y partes GPL tiene que
dar como resultado un programa bajo las normas de licencia GPL.
Licencias BSD:

- BSD (Berkeley Software Distribution). Es una licencia libre


flexible respecto a la distribución, de modo que la obra pueda
ser redistribuida como libre o privativa.
- El nuevo código tras las modificaciones puede no ser libre.
Permite el uso del código fuente en software no libre.
- Por ejemplo: Si un desarrollador crea el programa (código X) y otro
desarrollador lo quiere utilizar, podrá tomar libremente del código X,
sólo respetando la autoría pero sin liberar los cambios que hayan hecho.
VERSIONES DEL SOFTWARE .

Un determinado software puede pasar por diferentes versiones desde que se


pone a disposición de los usuarios para su chequeo hasta que se considera fiable,
estable o final:

Alpha.- Versión inicial en desarrollo que es probada en un entorno


controlado de laboratorio.

Beta.- Versión en desarrollo más elaborada que la versión Alpha. Se pone


a disposición de los usuarios para que sea probada en los diferentes
entornos y configuraciones

Release Candidate.- Versión que puede ser “lanzada” pero que


probablemente contendrá todavía errores que serán prácticamente
indetectable con un uso normal o superficial.
Estable o final.- Versión suficientemente probada como para
considerarse lista para su uso. Salvo que se especifique lo contrario, el
software se distribuye bajo esta versión.

Lite. Las versiones Lite son versiones básicas de más bajo precio o menos
funcionalidades de un producto más completo.

Los números de la versión.

- Cuanto mayor sea el número más reciente es la versión.


- La numeración de las versiones generalmente se hace mediante criterios de
MARKETING. (No están todos los números) se entiende que cuando los
cambios son lo suficientemente importantes se modifica el número de la
versión.
- Generalmente las versiones comienzan con 1.0, dejando los valores
anteriores para versiones alpha. Si los cambios son mínimos se numeran
como 1.0.1 y a medida que son mayores se modifican 1.3, 1.4. Al cambiar de
versión el desarrollo o mejora es considerable.
- En ocasiones no es posible “actualizar” un software de una versión a la
siguiente, sino que se recomienda “desinstalar” la versión antigua e “instalar”
la nueva versión.
- Muchas aplicaciones realizan conexiones, si así se indica en su configuración,
para que cuando se ejecuten busquen en Internet si existen versiones más
actualizadas del producto.

Vous aimerez peut-être aussi