Sie sind auf Seite 1von 19

Universidad Nacional de la Patagonia San Juan Bosco

Facultad de Ingeniería

UNIDAD 4: Lenguajes de programación

Para comenzar a estudiar esta unidad es importante tener en claro el concepto de algoritmo. Un
algoritmo es un conjunto de instrucciones o reglas bien definidas, ordenadas y finitas que permite
llevar a cabo una actividad mediante pasos sucesivos que no generen dudas a quien deba hacer
dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un
estado final y se obtiene una solución.
En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos
ejemplos son:
 los manuales de usuario, que muestran algoritmos para usar un aparato, o
 las instrucciones que recibe un trabajador por parte de su patrón.
 Algunos ejemplos en matemática son el algoritmo de multiplicación, para calcular el
producto, el algoritmo de la división para calcular el cociente de dos números

Los algoritmos pueden ser expresados de muchas maneras, incluyendo el lenguaje natural,
pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. El pseudocódigo y
diagramas de flujo son formas más estructuradas para representar algoritmos; y además, se
mantienen independientes de un lenguaje de programación específico.
La descripción de un algoritmo usualmente se hace en tres niveles:
1. Descripción de alto nivel. Se establece el problema, se desglosa para poder entenderse
en detalle y se explica el algoritmo de manera verbal, posiblemente con diagramas de flujo.
2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que
encuentran la solución.
3. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación
específico.

En el nivel de implementación es cuando aparece el concepto de lenguaje de programación.


Un lenguaje es un medio de comunicación capaz de contener e intercambiar información. Pueden
clasificarse según su propósito particular en:
 Naturales: Español, Inglés, Francés, etc.
 Simbólicos: Morse, Braille, etc.
 De programación: Ada, Pascal, Java, C, etc.

Elementos de Informática 2020 Pág. 1


Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

Un lenguaje de programación es un lenguaje formal diseñado para realizar algoritmos que


pueden ser llevados a cabo por máquinas como las computadoras.
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su
estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se
prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le
llama programación.

Lenguajes de bajo nivel, intermedios y de alto nivel


Los lenguajes de programación se pueden clasificar de acuerdo con diversos criterios. El criterio
más simple que se puede considerar hace referencia a la proximidad del lenguaje con la máquina o
con el lenguaje natural. De acuerdo con este criterio, existen tres niveles:

• Lenguajes de bajo nivel: propio de los circuitos electrónicos, expresado con ceros y unos.
Binario o de máquina.

• Lenguajes intermedios: ensambladores.

• Lenguajes de alto nivel: cercano al lenguaje natural. Se pueden clasificar atendiendo a los
estilos de programación, en cuatro grupos.

Lenguajes de bajo nivel


El lenguaje de bajo nivel es aquel en el que sus instrucciones ejercen un control directo
sobre el hardware y están condicionados por la estructura física de las computadoras que lo
soportan. El uso de la palabra bajo en su denominación no implica que el lenguaje sea
menos potente que un lenguaje de alto nivel, sino que se refiere a la reducida abstracción
entre el lenguaje y el hardware.
Utiliza el alfabeto binario, que consta de los dos únicos símbolos 0 y 1, denominados bits.
Fue el primer lenguaje utilizado en la programación de computadoras, pero dejó de utilizarse
por su dificultad y complicación.

Lenguajes intermedios (ensambladores)


Un lenguaje ensamblador consiste en un conjunto de mnemónicos que representan
instrucciones básicas para las computadoras, microprocesadores, micro controladores y
otros circuitos integrados programables. Constituye la representación más directa del código

Elementos de Informática 2020 Pág. 2


Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

máquina específico para cada arquitectura legible por un programador. Cada arquitectura de
procesador tiene su propio lenguaje ensamblador que usualmente es definida por el
fabricante de hardware, y está basada en los mnemónicos que simbolizan los pasos de
procesamiento (las instrucciones), los registros del procesador, las posiciones de memoria y
otras características del lenguaje. Un lenguaje ensamblador es por lo tanto específico de
cierta arquitectura de computador física (o virtual).
Un programa ensamblador es usado para traducir sentencias del lenguaje ensamblador al
código de máquina. El código resultante de la ejecución del programa ensamblador
generaría un código binario ejecutable.

Lenguajes de alto nivel


Un lenguaje de alto nivel se caracteriza por expresar el algoritmo de una manera adecuada
a la capacidad cognitiva humana, en lugar de la capacidad ejecutora de las máquinas.
En los primeros lenguajes, la limitación era que se orientaban a un área específica y sus
instrucciones requerían de una sintaxis predefinida. Otra limitación de estos es que se
requiere de ciertos conocimientos de programación para realizar las secuencias de
instrucciones lógicas. Los lenguajes de alto nivel se crearon para que el usuario común
pudiese solucionar un problema de procesamiento de datos de una manera más fácil y
rápida.

Las principales características de los lenguajes de alto nivel son:


 su vocabulario y sintaxis son limitados y rígidos
 son independientes de la arquitectura de la computadora
 una sentencia da lugar, al ser traducida, a varias instrucciones en lenguaje de
máquina
 expresan las operaciones en un lenguaje cercano al matemático y al natural
 contienen acciones que una computadora puede entender y realizar.
 permiten crear programas complejos en relativamente menos líneas de código.

Inconvenientes
 Reducción de velocidad al ceder el trabajo de bajo nivel a la máquina.
 Algunos requieren que la máquina cliente posea una determinada plataforma.

Elementos de Informática 2020 Pág. 3


Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

Un paradigma de programación representa un enfoque particular o filosofía para diseñar


soluciones. Los paradigmas difieren unos de otros, en los conceptos y la forma de
abstraer los elementos involucrados en un problema, así como en los pasos que integran
su solución del problema, en otras palabras, el cómputo. Es un estilo de programación
empleado.
Un paradigma de programación está delimitado en el tiempo en cuanto a aceptación y
uso, porque nuevos paradigmas aportan nuevas o mejores soluciones que la sustituyen
parcial o totalmente.

Los lenguajes de alto nivel, según el paradigma de programación utilizado, se pueden


clasificar en:
 Procedural o imperativo (Ej: C – Basic - Pascal)
 Lógico (Ej: Prolog)
 Funcional (Ej: LISP - Scheme)
 Orientado a objetos (Ej: Smalltalk)

Procedural o imperativo
La programación imperativa es uno de los paradigmas de programación de
computadoras más generales, que describe la programación en términos del estado del
programa y sentencias que cambian dicho estado. Los programas imperativos son un
conjunto de instrucciones que le indican al computador cómo realizar una tarea, de la
misma manera que el modo imperativo en los lenguajes naturales humanos le dice qué
hacer al interlocutor. Las recetas de cocina y las listas de revisión de procesos, a pesar de
no ser programas de computadora, son también conceptos familiares similares en estilo a
la programación imperativa; donde cada paso es una instrucción.

Lógico
En la programación lógica, el enfoque es expresar programas de manera lógica simbólica
y utilizar un proceso de inferencia lógica para producir resultados. Los programas lógicos
son declarativos, no de procedimiento, lo que significa que sólo se expresan las
especificaciones de los resultados deseados en vez de detallar los procedimientos para
producirlos.

Elementos de Informática 2020 Pág. 4


Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

Los programas escritos en lenguajes de programación lógica son colecciones de hechos y


reglas. Dicho programa es utilizado para realizar preguntas, a las que se intenta dar
respuesta mediante la consulta de los hechos y reglas.
La programación que utiliza una forma de lógica simbólica como un lenguaje de
programación, se llama programación lógica, y los lenguajes basados en la lógica
simbólica son llamados lenguajes de programación lógica, o lenguajes declarativos.
La sintaxis de los lenguajes de programación lógica es notablemente diferente de la de
los lenguajes imperativos y funcionales. La semántica de los programas lógicos también
tiene poco parecido al de los programas de lenguaje imperativo.

Funcional
El paradigma de programación funcional se basa en funciones matemáticas.
En los programas escritos en lenguaje imperativo, una de las características
fundamentales es el estado que tienen, lo que cambia a lo largo de la ejecución. Este
estado está representado por las variables del programa. El autor y todos los lectores del
programa deben entender los usos de sus variables y cómo el estado del programa
cambia a través de la ejecución. Para un programa grande, esto es una tarea
desalentadora. Este es un problema con los programas escritos en un lenguaje imperativo
que no está presente en un programa escrito en un lenguaje funcional puro, ya que no
tienen ni variables ni estado.

LISP comenzó como un lenguaje funcional puro, pero pronto adquirió cierta importancia
con características imperativas con el fin de aumentar su eficiencia en la ejecución. Es
aún el más importante de los lenguajes funcionales, al menos en el sentido de que es el
único que ha alcanzado un uso generalizado.
Domina en las áreas de la representación del conocimiento, aprendizaje de las máquinas,
los sistemas de formación inteligentes, y el modelado de habla. Common Lisp es una
combinación de varios principios de LISP de 1980.
Scheme es un pequeño dialecto de LISP. Scheme ha sido ampliamente utilizado para
enseñar programación funcional. También se utiliza en algunas universidades para dictar
cursos de introducción a la programación.
El desarrollo de los lenguajes de programación funcional con tipo, principalmente ML y
Haskell, ha dado lugar a una significativa expansión de las áreas de la computación en el
que ahora se utilizan los lenguajes funcionales. Ellos están siendo utilizados en áreas

Elementos de Informática 2020 Pág. 5


Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

como el procesamiento de base de datos, modelos financieros, análisis estadístico, y la


bioinformática.

POO
La programación orientada a objetos es, en esencia, una aplicación del principio de
abstracción para los tipos abstractos de datos. Específicamente, en la programación
orientada a objetos, las características más comunes de una colección de tipos abstractos
de datos similares son colocadas en un nuevo tipo. Los miembros de la colección heredan
estas partes comunes de ese nuevo tipo. Esta característica es la herencia, que se
encuentra como eje principal de la programación OO y de los lenguajes que la soportan.

La otra característica importante de la programación orientada a objetos, es el enlace


dinámico en las invocaciones.

El concepto de programación orientada a objetos tiene sus raíces en Simula 67, pero no
se desarrolló plenamente hasta 1980 con Smalltalk 80.
Un lenguaje que es orientado a objetos debe proporcionar soporte para tres
características claves:
 tipos abstractos de datos
 herencia
 enlace dinámico.

Proceso de traducción
Cualquier programa escrito en lenguaje de alto nivel posee un programa fuente asociado, el cuál no
puede ser ejecutado directamente por la PC. Por eso mismo el programa fuente debe ser traducido
a lenguaje de máquina. Esta conversión de código la realiza el traductor de lenguaje, y el resultado
obtenido se denomina programa objeto.
Existen básicamente dos maneras de implementar un lenguaje:
 Interpretación
 Compilación

Los sistemas de aplicación de los primeros lenguajes de programación de alto nivel, construidos a
finales de 1950, se encontraban entre el software más complejo de la época. En la década de
1960, se realizaron intensos esfuerzos de investigación para entender y formalizar el proceso de

Elementos de Informática 2020 Pág. 6


Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

construcción e implementación de estos lenguajes de alto nivel. El mayor éxito de estos esfuerzos
fue en el área del análisis sintáctico.

Interpretación

La interpretación se encuentra en el extremo opuesto de la compilación.


Los programas son interpretados por otro programa llamado intérprete. El programa intérprete lee,
analiza, decodifica y ejecuta cada una de las sentencias de un programa fuente escrito en un
lenguaje de programación.

Aunque algunos lenguajes simples de principios de la década de 1960 (APL, SNOBOL, y LISP)
fueron puramente intérpretes, por la década de 1980, el enfoque se utiliza muy poco en lenguajes
de alto nivel. Sin embargo, en los últimos años, la interpretación ha hecho una reaparición
significativa con algunos lenguajes de scripting web, como JavaScript y PHP, que son ahora
ampliamente utilizados.

Proceso de interpretación:

Compilación

Es el proceso que traduce un programa escrito en un lenguaje de programación de alto nivel a otro
lenguaje de programación, pero este de bajo nivel o de máquina, generando un programa
equivalente que la máquina será capaz de interpretar. Los programas traductores que pueden
realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores
avanzados, pueden generar muchas líneas de código de máquina por cada proposición del
programa fuente.

La construcción de un compilador involucra la división del proceso en una serie de fases que
variará con su complejidad. Generalmente estas fases se agrupan en dos tareas: el análisis del
programa fuente y la síntesis del programa objeto.

Elementos de Informática 2020 Pág. 7


Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

 Análisis: Se trata de la comprobación de la corrección del programa fuente, e incluye las


fases correspondientes al Análisis léxico (que consiste en la descomposición del programa
fuente en componentes léxicos), análisis sintáctico (agrupación de los componentes léxicos
en frases gramaticales ) y análisis semántico (comprobación de la validez semántica de las
sentencias aceptadas en la fase de análisis sintáctico).
 Síntesis: Su objetivo es la generación de la salida expresada en el código objeto y suele
estar formado por una o varias combinaciones de fases de generación de código
(normalmente se trata de código intermedio o de código objeto) y de optimización de código
(en las que se busca obtener un código lo más eficiente posible).

Compilador vs. Intérprete


Compilador Intérprete
 Se compila una vez, pero puede  Es más fácil de construir que un
ejecutarse n veces compilador
 Mayor velocidad de ejecución  Facilita la depuración de errores en
 El código compilado ocupa menos el programa
espacio en memoria.  Provee independencia de la
plataforma

Elementos de Informática 2020 Pág. 8


Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

Debido a que el compilador cada vez que precisa ejecutarse, no se vuelve a compilar, sino que lo
hace una sola vez, insume menos tiempo en ejecución.
El intérprete debe analizar, convertir y ejecutar cada instrucción cada vez que se ejecute el
programa ejecutable, por lo tanto consume mucho tiempo en ejecución.
El mapa de memoria central se vería así:

Programa Programa
Intérprete SO Memoria libre
traductor Fuente

Programa
Programa Fuente →
SO Memoria libre Traducción
traductor Programa
Compilador ejecutable
Programa
SO Ejecución
ejecutable

Híbridos

Existe también una tercera opción, que es la combinación entre la interpretación y la compilación,
estas implementaciones se denominan sistemas híbridos. Estos traducen programas en lenguaje
de alto nivel en un lenguaje intermedio diseñado para permitir una interpretación fácil. Luego este
código intermedio puede ser interpretado en distintos entornos.
Este método es más rápido que la interpretación pura porque se decodifican las instrucciones del
lenguaje fuente sólo una vez.

Elementos de Informática 2020 Pág. 9


Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

Sistemas Operativos

En cualquier sistema informático para que el hardware realice el trabajo para el que ha sido
construido es necesario contar con el software necesario, que posee una serie de normas y
órdenes que coordinan los distintos procesos que se desarrollan en el sistema. A través del
software, que puede estar integrado por un gran número de programas que interactúan unos con
otros, pueden ser manejados todos los recursos de un sistema informático, logrando de esta forma
resolver problemas.

El software es el enlace de comunicación entre el usuario y la computadora, se almacena en


memoria, y no permanentemente en los circuitos, por lo cual puede modificarse fácilmente para
satisfacer las necesidades del usuario.

Todos los programas que conforman el software pueden dividirse en dos grupos:

 Software de base o de sistemas: compuesto por el conjunto de programas imprescindibles


para el funcionamiento del hardware, más un conjunto de programas, llamados programas
de utilería, cuya misión es la de facilitar el uso del sistema, y optimizar sus recursos, como
los editores, interprete de comandos, traductores, etc.

 Software de aplicación: es el conjunto de programas que se desarrollan para que una


computadora resuelva un problema del usuario. Ej.: Sistema bancario, reservas en líneas
aéreas, juegos de video.

Elementos de Informática 2020 Pág. 10


Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

Los sistemas operativos (SO) forman parte del software de base.

Los SO poseen dos funciones básicas, ellas son:

 "Presentar al usuario una máquina ampliada o máquina virtual más fácil de programar
que el hardware implícito"

Los programadores se manejan con abstracciones; por ejemplo, podemos ver la lista de
archivos almacenados en un disco como una abstracción de la realidad física (el disco: con
sus sectores, pistas y cabezas de lectura y escritura). Al usuario le interesa poder leer,
escribir y consultar el archivo fácilmente sin tener que considerar, entre otros aspectos, en
qué posición del disco (en qué sector, en qué pista) está almacenada esa información.
El SO es un programa que actúa como intermediario, oculta la verdad del hardware, facilita
el manejo de los dispositivos de almacenamiento al programador y presenta una vista

Elementos de Informática 2020 Pág. 11


Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

simple y agradable de los archivos nominados, archivos identificados por el usuario a través
de un nombre.
A través del ejemplo dado, hemos podido observar que el SO presenta una interfaz simple
orientada a la manipulación de archivos de un disco y resguarda al usuario y al programador
de todos los aspectos relacionados con el manejo o acceso al hardware del disco.
Además de facilitar el acceso a discos, el SO también presenta abstracciones para el
manejo de interrupciones, de relojes, de memoria, etc. abstracciones más fáciles, sencillas y
simples de utilizar que el hardware implícito.

 "Manejar los recursos del sistema informático, llevar el control de quien utiliza cual
recurso, conceder requerimientos de recursos, explicar el uso e interceder en
solicitudes conflictivas de diferentes programas y usuarios"

En una computadora con múltiples usuarios se necesita compartir los recursos costosos: el
procesador central, la memoria, los dispositivos de E/S, etc., estos elementos compartidos
deben ser racionalmente distribuidos para mejorar el rendimiento de todo el sistema y
asegurar una manipulación adecuada y segura de los mismos.

Un sistema operativo puede definirse como un conjunto de programas que controlan el


funcionamiento del hardware ocultando sus detalles, ofreciendo al usuario una vía sencilla y
flexible de acceso a la computadora; actúa como administrador de los recursos ofrecidos
por el hardware para alcanzar un eficaz rendimiento de los mismos.

La estructura básica de un sistema operativo es:

Elementos de Informática 2020 Pág. 12


Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

Kernel
El núcleo o kernel es un software que constituye una parte fundamental del sistema
operativo. Es el principal responsable de facilitar a los distintos programas acceso seguro al
hardware de la computadora en forma básica, es el encargado de gestionar recursos, a
través de servicios de llamada al sistema. Como hay muchos programas y el acceso al
hardware es limitado, también se encarga de decidir qué programa podrá usar un dispositivo
de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al
hardware directamente puede ser realmente complejo, por lo que los núcleos suelen
implementar una serie de abstracciones del hardware. Esto permite esconder la
complejidad, y proporcionar una interfaz limpia y uniforme al hardware subyacente, lo que
facilita su uso al programador.
En algunos sistemas operativos, no existe un núcleo como tal debido a que en ciertas
arquitecturas no hay distintos modos de ejecución.

Gestor de recursos
Como gestor de recursos, el sistema operativo administra:
 La unidad central de procesamiento.
 Los dispositivos de entrada y salida.
 La memoria principal y memoria secundaria (discos).
 Los procesos (o programas en ejecución).
 Y en general todos los recursos del sistema.

Gestión de memoria
La memoria es una gran tabla de palabras o bytes a las cuales se referencia
mediante una dirección única. Este almacén de datos de rápido acceso es
compartido por la CPU y los dispositivos de E/S, es volátil y pierde su contenido ante
ausencia de energía eléctrica o por fallas del sistema. El SO es el responsable de:
 Conocer qué partes de la memoria están siendo utilizadas y por quién.
 Decidir qué procesos se cargarán en memoria cuando haya espacio disponible.
 Asignar y reclamar espacio de memoria cuando sea necesario.

Elementos de Informática 2020 Pág. 13


Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

Gestión de procesos
Un proceso es un programa en ejecución que necesita recursos para realizar su
tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el
responsable de lo siguiente:
 Crear y destruir procesos.
 Parar y reanudar procesos.
 Ofrecer mecanismos para que los procesos puedan comunicarse y se
sincronicen.
La gestión de procesos podría ser similar al trabajo de oficina. Se puede tener una
lista de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo.
Debemos comenzar haciendo las tareas de prioridad alta primero y cuando se
terminen seguir con las de prioridad media y después las de baja. Una vez realizada
la tarea se tacha.
Esto puede traer un problema: que las tareas de baja prioridad puede que nunca
lleguen a ejecutarse y permanezcan en la lista para siempre. Para solucionar esto,
se puede asignar alta prioridad a las tareas más antiguas.

Gestión de E/S
Consiste en un sistema de almacenamiento temporal, una interfaz de manejadores
de dispositivos y otra para dispositivos concretos. El sistema operativo debe
gestionar el almacenamiento temporal de E/S y servir las interrupciones de los
dispositivos de E/S.

Gestión de archivos
Los archivos son colecciones de información relacionada. Estos almacenan
programas (en código fuente y objeto) y datos tales como imágenes, textos,
información de bases de datos, etc. El SO es responsable de:
 Construir, eliminar archivos y directorios.
 Ofrecer funciones para manipular archivos y directorios.
 Establecer la correspondencia entre archivos y unidades de almacenamiento.
 Realizar copias de seguridad de archivos.
Existen diferentes sistemas de archivos, es decir, existen diferentes formas de
organizar la información que se almacena en las memorias (normalmente discos) de

Elementos de Informática 2020 Pág. 14


Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

las computadoras. Por ejemplo, existen los sistemas de archivos FAT, FAT32, ext3,
NTFS, XFS, etc.

Shell
El shell o intérprete de órdenes o intérprete de comandos es el programa informático
que provee una interfaz de usuario para acceder a los servicios del sistema operativo.
Dependiendo del tipo de interfaz que empleen, los shells pueden ser:
 De líneas texto (CLI, Command-Line Interface, interfaz de línea de comandos),
 Gráficos (GUI, Graphical User Interface, interfaz gráfica de usuario),

Los shell son necesarios para invocar o ejecutar los distintos programas disponibles en la
computadora.

Ejemplo interfaz CLI Ejemplo interfaz GUI

Los SO varían mucho en propósito y diseño. Algunos son muy simples planeados para dar servicio
a un solo usuario en una computadora personal (SO monousuario), en tanto que otros son muy
complejos, atienden a muchos usuarios a la vez y administran recursos de hardware y software de
gran complejidad (SO multiusuario).

Actividades Primordiales de los Sistemas Operativos Multiusuario

Comunicación con los periféricos


El SO incluye programas que se encargan de manera transparente de los detalles de comunicación
con periféricos: pantallas, impresoras, unidades de disco, etc.

Elementos de Informática 2020 Pág. 15


Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

Sincronización del procesamiento de trabajos concurrentes


El procesamiento concurrente es cada vez más común en los SO de computadoras personales que
cuentan con la ejecución multitarea.

Administración de memoria
Al procesar concurrentemente varios trabajos, el SO debe controlar la forma de usar la memoria de
la computadora y asegurar que ningún trabajo invada el territorio de otro.

Supervisión, contabilidad y seguridad de recursos


Para asegurar la confidencialidad y la seguridad de los datos de los usuarios, el SO vigila y
mantiene registros de tiempo de uso, necesidades de almacenamiento y páginas impresas por el
usuario. Si el sistema está diseñado para cobrar a los usuarios por los recursos empleados puede
calcular e imprimir las facturas.

Administración de programas y datos


Actúa como bibliotecario localizando y dando acceso a los programas solicitados por el usuario y
otros programas.

El software del SO se mantiene activo mientras la computadora esté


encendida, incluso cuando los usuarios trabajen con programas de
aplicación.

Algunas computadoras almacenan sus SO de manera permanente en la ROM para que puedan
comenzar a trabajar en cuanto se encienden; pero en estos casos, para actualizar el SO debe
realizarse la sustitución de hardware. Casi todas las máquinas tienen una parte de su SO en ROM
y lo demás se carga en memoria durante el proceso de arranque.

Multiprogramación
La multiprogramación consiste en la ejecución en el mismo procesador de varios programas a la
vez. Para ello divide la memoria en partes, destinadas a diferentes trabajos, que se ejecutarán en
CPU en un solo intervalo de tiempo, mientras un trabajo espera que se complete una operación de
E/S, otro ocupa la CPU. Existen las modalidades: procesamiento por lotes (batch), tiempo
compartido (time sharing) y tiempo real (real time) en las que a través de varias políticas de
asignación, se ejecutan varios programas intercalando la ejecución de sus instrucciones en el
procesador.
Elementos de Informática 2020 Pág. 16
Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

El propósito básico de la multiprogramación es mejorar el rendimiento, permitiendo que los


recursos del sistema se compartan entre varios trabajos realizados a la vez.

Procesos concurrentes

Multip ro g ra mación y sus modalidades

 Procesamiento por Lotes (Batch): El procesamiento Batch consiste en ejecutar un


lote de trabajos, en secuencia, las salidas asociadas se obtienen al finalizar la
ejecución de la totalidad del lote de trabajos. Estos sistemas surgieron en la segunda
generación de computadoras, en ellos, el tiempo transcurrido entre la entrega del
trabajo y la devolución de los resultados de salida, llevaba varias horas. Situación
que impedía a los programadores depurar rápidamente sus programas, muy
rigurosos en cuanto a sintaxis.

 Tiempo Compartido (Time Sharing): Los procesos actuales son en su mayoría


interactivos o conversacionales, por ello aparece el tiempo compartido, en el cual
existen un conjunto de terminales, cuyos usuarios pueden estar continuamente
solicitando la atención del procesador, siendo el sistema operativo quien va
intercalando dicha atención entre c/u de ellos; para lo cual asigna un tiempo fijo de
CPU a cada proceso. Con esta técnica, la computadora puede ofrecer un servicio
interactivo y veloz a varios usuarios

 Tiempo real (Real Time): El tiempo real es la posibilidad que tienen determinados
procesos en un sistema multiprogramado de obtener respuestas del procesador en
un tiempo muy pequeño.
Esta modalidad de la multiprogramación se emplea para responder con rapidez a
señales externas como las generadas por sensores de datos, y se emplean, por
ejemplo, en computadoras que vigilan y controlan procesos críticos en cuanto al
tiempo, como la operación de un reactor nuclear o el vuelo de una nave espacial. El
objetivo de los sistemas de tiempo real es proporcionar un tiempo de respuesta
garantizado para sucesos externos críticos en tiempo.

Elementos de Informática 2020 Pág. 17


Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

Procesos paralelos

En el intento de aumentar la seguridad, la velocidad de proceso y las prestaciones que pueden


ofrecerse al usuario se obtuvieron SO que controlan lo que se llama proceso distribuido,
consistente en la conexión en paralelo de varias computadoras compartiendo memoria, buses y
terminales, con el fin de ganar seguridad en el servicio, debido a que el SO va repartiendo el
trabajo solicitado entre las distintas computadoras e incluso ante el fallo o caída de una de ellas no
se interrumpe el servicio por parte del resto.
En los SO distribuidos los usuarios no tienen conocimiento de donde se están ejecutando sus
programas o de donde están ubicados sus archivos, existe un SO que maneja esto en forma
automática y eficiente. A menudo permiten que los programas corran en varios procesadores al
mismo tiempo.
Para aumentar la velocidad de proceso, existe el multiprocesamiento, consistente en computadoras
que poseen más de un procesador, aumentando el número de instrucciones que la máquina puede
ejecutar por unidad de tiempo.
Por ultimo existen sistemas operativos en red para control del trabajo que se realiza en una red de
computadoras.
En los SO en red los usuarios tienen conocimiento de la existencia de múltiples computadoras y
pueden ingresar en máquinas remotas y reproducir archivos de una máquina a la otra. Cada
máquina ejecuta su SO local y tiene un usuario propio (o usuarios)

Cliente / Servidor Datos distribuídos

Para computadoras personales, los primeros sistemas operativos más difundidos fueron: MS-DOS
y UNIX. Hoy en día existe gran diversidad de SO, entre ellos:

Elementos de Informática 2020 Pág. 18


Universidad Nacional de la Patagonia San Juan Bosco
Facultad de Ingeniería

Bibliografía

 Informática Básica – Segunda edición (Eduardo Alcalde – Miguel García) – Unidad 1.


 Introducción a la Informática - 2da.Edición - (Capítulo 14) - Autor: Alberto PRIETO –
Antonio LLORIS - Juan Carlos TORRES Edición 1999 – Editorial McGraw Hill.

Elementos de Informática 2020 Pág. 19

Das könnte Ihnen auch gefallen