Download 1 - Sistemas Operativos

Document related concepts

Núcleo (informática) wikipedia , lookup

Sistema operativo wikipedia , lookup

Anillo (seguridad informática) wikipedia , lookup

Proceso (informática) wikipedia , lookup

Arquitectura de Windows NT wikipedia , lookup

Transcript
1
TAREA 1.
INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.
1-¿Cuáles son las principales funciones de un sistema operativo?
Los Sistemas Operativos tienen como objetivos o funciones principales lo
siguiente;

Comodidad; el sistema operativo convierte al computador un equipo fácil
de usar por el usuario.

Eficiencia; El Sistema Operativo ayuda a que los recursos informáticos
sean aprovechados mas eficientemente.

Capacidad de Evolución; un sistema operativo debe estar construido o
programado de tal forma que pueda tener un desarrollo efectivo y
evolucionar con respecto a las nuevas tecnologías sin interferir en los
servicios que brinda.

Administración de Trabajos; Cuando existen varios programas en espera
de ser procesados, el sistema operativo debe decidir el orden de
procesamiento de ellos, así como asignar los recursos necesarios para
su proceso.

Administración de Recursos; Mediante está función el sistema operativo
esta en capacidad de distribuir en forma adecuada y en el momento
oportuno los diferentes recursos (memoria, dispositivos, etc.,...) entre los
diversos programas que se encuentran en proceso, para esto, lleva un
registro que le permite conocer que recursos están disponibles y cuales
están siendo utilizados, por cuanto tiempo y por quien, etc.

Control de Operaciones de E/S; Mediante esta actividad el sistema
operativo decide que proceso hará uso del recurso, durante cuánto
tiempo y en que momento.

Recuperación de Errores; El sistema operativo contiene rutinas que
intentan evitar perder el control de una tarea cuando se suscitan errores
en la transferencia de información hacia y desde los dispositivos de
entrada / salida.
2-¿Qué diferencia existe entre un mandato y una llamada al sistema?
Introducción a los Sistemas Operativos
Edgar A. Mendieta
2
Un mandato es una orden dada al sistema operativo, es una instrucción dada
mediante una línea de comando o el llamado a un programa. Dicho mandato o
instrucción levantara un o unos procesos al ejecutarse, de las cuales estos
procesos para poder ejecutarse harán llamadas al sistema para hacer
peticiones de recurso de hardware. De donde podemos decir que una llamada
al sistema son las peticiones que hace el sistema operativo al momento de
ejecutar un programa para darle recursos al proceso que levantara.
3-¿Cómo se solicita una llamada al sistema operativo?
Los programas del usuario se comunican con el sistema operativo y se solicita
un servicio mediante las llamadas al sistema. A cada una de estas llamadas le
corresponde un llamado de la biblioteca que pueden llamar los programas del
usuario ejemplo: Las llamada al sistema de Read que se utiliza en unix y MSDOS tiene tres parametros:

El primero es el archivo correr .

El segundo detrmina un almacen ( Buffer) en el cual colocar los datos
del archivo

El tercero indica el numero de bytes por leer
4-¿Cómo indica POSIX
en un programa C el tipo de error que se ha
producido en una llamada al sistema? ¿y Win32?
Todo programa escrito en C para estándares POSIX “Portable Operating
System for UNIX”. Para especificar el tipo de error hay una variable global de
tipo int, errno que actualiza el procedimiento de llamada al sistema si hay error.
El proceso que la recibe debe procesarla y ponerla a 0 al finalizar.
El lenguaje C es un lenguaje multiplataforma, por lo que podemos decir que
tanto en POSIX (Unix) o en Windows los indicadores de errores serán dado
mediante la lecturas de librerías y en cada forma este enviara mensajes
anunciando que se produjo el error.
5-¿Cuál de las siguientes técnicas hardware tiene mayor influencia en la
construcción de un sistema operativo? Razone su respuesta.
A.- Microprogramación del procesador
B.- Cache de la memoria principal
Introducción a los Sistemas Operativos
Edgar A. Mendieta
3
C.- DMA
D.- RISC
Primero que nada veamos de que nos habla o de que trata cada una:

Microprogramación del Procesador; Es una estrategia para implementar
la unidad de control de un procesador que consiste en programar al nivel
de las operaciones de transferencia de registros.

Cache de Memoria Principal; La memoria cache es mas que todo una
memoria temporal, generalmente de existencia oculta y automática para
el usuario, que proporciona acceso rápido a los datos de uso más
frecuente o previsible.

DMA;
Acceso
Directo
a
Memoria.
Consiste
en
una
técnica,
implementada bajo un microprocesador especializado, orientada a la
transferencia de información desde un dispositivo periférico hasta la
memoria principal, sin la utilización para controlarla de la CPU. La CPU
solo actúa al principio y fin de dicha transferencia.

RISC; Reduced Instruction Set Computing. Tecnologia de alto
desempeño, en donde las instrucciones tienen una complejidad muy
reducida.
Bien, al ver un poco de las descripciones de cada una de las tecnologías
descritas se puede decir que para que sea un buen sistema operativo este
debe estar reacuerdo a la tecnología. Si bien ese cierto los sistemas operativos
irán evolucionando dependiendo a la evolución del hardware. No hay que
olvidar que referente a la tecnología se puede tener un Sistema Operativo
específico, el cual buscara un mejor desarrollo de dicho equipo.
Como se dijo anteriormente un buen Sistema Operativo debe basarse en la
tecnología como un todo para buscar el buen aprovechamiento de los recursos
existentes. Si se basa en cualquiera característica de un equipo se pueden
dejar recursos sin explotar. Todas las técnicas descritas anteriormente serán
de vital importancia para construir un Sistema Operativo.
6-¿El intérprete de mandatos de UNIX es interno o externo? Razone su
respuesta con un ejemplo
Introducción a los Sistemas Operativos
Edgar A. Mendieta
4
Si lo vemos del lado de un usuario, administrador o programador el shell de
Unix; intérprete de comandos o mandatos, interfaces de usuario y de otra
manera se puede llamar el interlocutor del usuario con el kernel. Es una
interface externa; ya que el usuario tiene una relación directa con él. A
diferencia de otros Sistemas Operativos en los cuales el interprete de comando
esta de forma oculta o interna.
En los Sistemas Operativos basados en Unix el usuario puede interactuar de
forma directa con el shell o interprete de comando. De otra manera se puede
decir que el shell no es parte del sistema operativo, pero es útil y de gran
ayuda. Sin el shell no podemos realizar llamadas al sistema mediante la
introducción de ordenes, pero el sistema operativo puede funcionar sin tener
shell; ya que habrá procesos que se ejecutaran sin necesidad que un usuario
introduzca un mandato para que lo hagan.
7-¿Dónde es más compleja una llamada al sistema, en un sistema
operativo monolítico o en uno por capas?
Las llamadas al sistema en los Sistemas Operativos monolíticos son menos
compleja que en los Sistemas divididos en capas; las instrucciones en los
Sistemas Operativos monolíticos se pueden decir o llamar directas, ya que al
un usuario ejecutar una instrucción esta es convertida de modo usuario a modo
núcleo. Mientras que en las llamadas al sistema en Sistemas Operativos por
capas se manejara por permisos para accesar capas inferiores. Si al momento
de que un usuario ejecuta una instrucción las capas inferiores verificaran si
dicha instrucción ejecutada por dicho usuario tiene permiso para accesar las
capas inferiores del Sistema Operativo y hacer gestión de un recurso definido.
8-¿Qué tipo de sistema operativo es más fácil de modificar, uno
monolítico o uno por capas? ¿Cuál es más eficiente?
Un Sistema Operativo por Capas es mas fácil de modificar ya que la división
por capas me da menos complejidad al momento de modificar algo
perteneciente a la capa que quiero modificar. El sistema monolítico al tener
una programación donde los procesos se relacionan unos con los otros tendrá
más complejidad para su modificación.
Introducción a los Sistemas Operativos
Edgar A. Mendieta
5
9-¿Debe ser un sistema operativo multitarea de tiempo compartido? ¿Y
viceversa? Razone su respuesta.
El fin que buscan los sistemas operativos para su evolución es el de
aprovechar al máximo los recursos de hardware. Por esta razón los Sistemas
Operativos multitarea y de tiempo compartido son importantes para las
tecnologías actuales; ya que se pueden ejecutar mas procesos, los recursos
serán mejor aprovechados y distribuidos.
10-¿Qué ventajas considera que tiene escribir un sistema operativo
utilizando un lenguaje de alto nivel?
Los lenguajes de alto nivel son fáciles y rápidos de comprender por su poca
complejidad al momento de introducir mandatos o sentencias en el código
fuente de un programa.
Si se programara un Sistema Operativo utilizando
lenguajes de alto nivel seria ventajoso para el programador y usuario: menos
líneas que escribir y más fácil de comprender lo que se hace en el equipo. Pero
un lenguaje de alto nivel no nos ayudara a gestionar o a tener una buena
planificación de nuestros procesos. Los lenguajes de alto nivel necesitan la
ayuda de lenguajes de bajo nivel (código maquina) para gestionar los recursos
a utilizar por las sentencias indicadas. Si lo vemos de manera a un buen
administrador estos lenguajes no serán muy ventajosos, ya que lo que
buscamos es un rendimiento al máximo de nuestro Sistema Operativo y de
nuestro equipo, cosa que un lenguaje de nivel alto no nos podrá dar.
11-Liste cinco servicios que un sistema operativo presta. Explique cómo
cada uno ofrece comodidad a los usuarios, y también en que casos sería
imposible que programas en el nivel de usuario proporcionen estos
servicios.
Los servicios más genéricos que un sistema operativo puede prestar pueden
ser:

Interfaces de Usuarios. El Sistema Operativo le brinda interfaces al
usuario para poder que este interactué con él. De esta forma el
usuario tendrá una manera más cómoda, ya que no tendrá que estar
ejecutando comandos de lenguaje máquina para ejecutar otros
Introducción a los Sistemas Operativos
Edgar A. Mendieta
6
procesos. Este servicio es uno de los más importantes que presta el
Sistema Operativo.

Acceso a Datos, Librerías, Directorios. Este servicio es prestado por
todos los sistemas operativos, consiste en que el usuario pueda
accesar cierta información del sistema operativo. Muchas veces esta
información no será accesada directamente, si no que será mediante
sentencias o mandatos dados por el usuario.
Muchas veces los
programas de usuario no tendrán acceso al estos datos del Sistema
Operativo por permisos dados a los mismos.

Seguridad. Todo Sistema Operativo debe dar o brindar seguridad a
todos los usuarios así como a él mismo. Toda la información del
sistema no debe ser accesada por todos los que accesen
dicho
sistema. A la vez a cada usuario se le debe brindar la protección de
sus datos.

Gestión de Memoria. El sistema operativo se encargara de brindar
apoyo o darle este servicio a todos los usuarios y procesos
ejecutados por el mismo.
El sistema se encargara de asignar
espacios ya sea de memoria principal, memoria virtual o memoria
física en el disco para cada usuario. Esta opción puede que no esté
para algún programa de usuario dependiendo del grado de seguridad
que tenga.

Multitareas. Todo Sistema Operativo debe ser capaz de brindar
servicios para que cada usuario pueda ejecutar múltiples tareas a la
vez. La limitante para el usuario y sus programas serán dadas por los
recursos del equipo.
Introducción a los Sistemas Operativos
Edgar A. Mendieta