1-¿Qué son y para
qué sirven los sistemas operativos (S.O)? Dar ejemplos de S.O para computadoras y dispositivos móviles
2- ¿Qué servicios debe proporcionar un S.O cómo máquina
virtual y como administrador de recursos? Detallar máquina virtual
3- ¿Qué son las
interrupciones y a qué se denominan Flags o semáforos?
4- ¿Qué diferencias
hay entre un S.O de 32 y 64 bits?
5- Explique las
diferencias entre S.O de código abierto y código cerrado. Dar ejemplos.
6- Explique las
diferencias principales entre los productos de la familia Windows y la familia
Linux?
7- ¿Qué son las
llamadas al sistema?
1)
Sistemas Operativos: SO - System
Operating
El sistema operativo
es el software que controla el hardware del sistema e interactúa con el usuario
y el software de aplicaciones.
EL S.O sirve para administrar y gestionar un equipo computarizado y
los diversos aparatos periféricos que lo compongan o que estén instalados
anexos al mismo.
Los sistemas operativos más populares:
- Microsoft Windows (para computadoras).
- Windows Server (para servidores)
- Linux (para computadoras y servidores)
- Mac OS (para computadoras)
- Chrome OS (para computadoras)
- Android (para
smartphones)
- Windows Phone (para
smartphones)
- iOS (para smartphones)
- BlackBerry OS (para smartphones)
2) Servicios
de un S.O
Los Sistemas Operativos son
ante todo administradores de recursos; el principal recurso que administran es
el hardware del computador; además de los procesadores, los medios de
almacenamiento, los dispositivos de entrada/salida, los dispositivos de
comunicación y los datos.
·
Ejecución de Programas.
·
Operaciones de Entrada /Salida.
·
Manipulación de archivos y
directorios.
·
Comunicaciones (entre procesos
y con equipos remotos)
·
Detección de errores.
·
Asignación de recursos.
·
Contabilidad.
·
Administración de la
protección y seguridad
La máquina Virtual.
Una máquina virtual es un
software que nos permitirá ejecutar varios sistemas operativos de forma
simultánea sobre un mismo hardware.
Los sistemas operativos que
ejecuta la máquina virtual se llaman sistemas operativos virtualizados.
Estos sistemas operativos separan dos conceptos que
suelen estar unidos en el resto de sistemas: la multiprogramación y la máquina
extendida.
El objetivo de los sistemas operativos de máquina virtual
es el de integrar distintos sistemas operativos dando la sensación de ser
varias máquinas diferentes.
El núcleo de estos
sistemas operativos se denomina monitor virtual y tiene como misión llevar a
cabo la multiprogramación, presentando a los niveles superiores tantas máquinas
virtuales como se soliciten.
Estas máquinas virtuales no son máquinas extendidas, sino
una réplica de la máquina real, de manera que en cada una de ellas se pueda
ejecutar un sistema operativo diferente, que será el que ofrezca la máquina
extendida al usuario.
3) Interrupciones
y Flags
Una interrupción es un mecanismo que permite
ejecutar un bloque de instrucciones interrumpiendo la ejecución de un programa,
y luego restablecer la ejecución del mismo sin afectarlo directamente.
De este modo un programa puede ser interrumpido temporalmente
para atender alguna necesidad urgente del computador y luego continuar su
ejecución como si nada hubiera pasado.
Generalmente se aplica para realizar tareas
elementales asincrónicas en el computador tales como responder al teclado,
escribir en la pantalla, leer y escribir archivos. (Una tarea asincrónica es
solicitada sin previo aviso y aleatoriamente desde el punto de vista del
computador)
Cada interrupción tiene
asignada un número único. La computadora está diseñada de manera que la
interrupción tiene asignada 4 bytes de memoria RAM.
La dirección de los cuatro
bytes en la memoria corresponde al número de la interrupción multiplicado por
4. Por ejemplo la interrupción IRQ 5 tiene asignada 4 bytes en la dirección
0x00014 (0000:0014). El contenido de los 4 bytes de memoria RAM asignados a una
interrupción contiene a su vez una dirección que es un puntero a un bloque de
instrucciones de máquina que realiza el procedimiento correspondiente.
De este modo al iniciar la
ejecución de una interrupción de los cuatro bytes que tiene asignados se
obtiene la dirección del bloque de instrucciones que efectivamente se ejecutan.
Por ejemplo si en la dirección
0000:0014 estuviera almacenado el valor 0xFFF00, ello significa que en dicha
dirección se encuentra el bloque de instrucciones a ejecutar cuando la
interrupción IRQ 5 sea requerida.
Interrupciones generadas por hardware:
|
Prioridad
|
Función
|
|
|
0
|
1
|
Timer
|
|
1
|
2
|
Teclado Hardware
|
|
2
|
***
|
Reservada
|
|
3
|
11
|
COM 2
|
|
4
|
12
|
COM 1
|
|
5
|
13
|
Tarjeta de
Sonido
|
|
6
|
14
|
Controlador
Floppy
|
|
7
|
15
|
Puerta Paralela
|
|
8
|
3
|
Reloj (tics)
|
|
9
|
4
|
Libre para
tarjeta de red, sonido, puerta SCSI
|
|
10
|
5
|
Libre para
tarjeta de red, sonido, puerta SCSI
|
|
11
|
6
|
Libre para
tarjeta de red, sonido, puerta SCSI
|
|
12
|
7
|
PS-mouse
|
|
13
|
8
|
Co-procesador matemático
|
|
14
|
9
|
Canal IDE
primario
|
|
15
|
10
|
Canal IDE
secundario
|
Pasos que ocurren en una interrupción =
·
El sistema operativo toma el
control (es decir, el hardware pasa el control al sistema operativo).
·
El sistema operativo guarda el
estado del proceso interrumpido. En muchos sistemas esta información se guarda
en el bloque de control de proceso interrumpido.
·
El sistema operativo analiza
la interrupción y transfiere el control a la rutina apropiada para atenderla;
en muchos sistemas actuales el hardware se encarga de esto automáticamente.
·
La rutina del manejador de
interrupciones procesa la interrupción.
·
Se restablece el estado del
proceso interrumpido (o del “siguiente proceso”).
·
Se ejecuta el proceso
interrumpido (o el “siguiente proceso”).
Los Flags o Semáforos:
El concepto de semáforo nace de la necesidad de crear un sistema operativo
en el que puedan trabajar procesos cooperantes. No es un mecanismo de
comunicación sino de sincronización y son utilizados para controlar el acceso a
los recursos.
Un semáforo básico es una variable entera y dos operaciones atómicas (sin
interrupciones) que la manejan:
• Espera (P): Se usa cuando un proceso quiere acceder a un recurso
compartido y puede ocurrir:
ü
Si la variable entera es
positiva, coge el recurso y decrementa dicho valor.
ü
En caso de que el valor sea
nulo el proceso se duerme y espera a ser despertado.
• Señal (V): Se utiliza para indicar que el recurso compartido esta libre y
despertar a los procesos que estén esperando por el recurso.
Problemas que resuelven
principalmente los semáforos:
ü
La exclusión mutua.
ü
Sincronización de Procesos
4) Diferencias
entre procesadores de 32 bits y 64 bits
Tanto el hardware
como el software pueden ser de 32 o de 64 bits. Al hablar de hardware nos referimos al
procesador (CPU), y hoy en día la gran mayoría de los que se venden son de 64
bits. Si hablamos de software,
nos referimos al sistema operativo y a los programas que se le pueden instalar.
La mejor arquitectura
es la de 64 bits, es más nueva y es el doble de rápida que la de 32.
|
|
Sistemas
de 32 bits
|
Sistemas
de 64 bits
|
|
Características
|
Limite de Memoria 4GB RAM.
Compatibles con Programas de 16 bits.
Uso Domestico.
|
Soportan una gran memoria Virtual
Soportan gran cantidad de Memoria RAM
Tienen mejor Fluidez
Son de uso profesional
Tienen problemas de Drivers.
|
|
Diferencias
|
Solo soporta sistemas operativos de 32 bits y hasta 4
GB de memoria RAM
se puede instalar en equipos con procesador tanto de 32
como de 64 bits, pero si lo instalamos
en uno de 64 bits no aprovecharemos toda la capacidad del procesador.
Es poco seguro.
El software que instalemos solo puede ser de 32 bits o
de 16 bits.
|
Soporta tanto sistemas operativos de 32 como de 64 bits
y hasta 16.000.000.000 GB de memoria RAM.
Se puede instalar en equipos con procesador de 64 bits
y, según el sistema operativo
que se utilice.
Un sistema
operativo de 64 bits es más seguro que uno de 32 bits.
El software que instalemos es muy
recomendable que sea de 64 bits. También
puede soportar software de 32 bits aunque en algunos casos los programas
pueden no funcionar
En el caso de los juegos para PC, si se desea
mejorar el rendimiento, lo ideal es mejorar la tarjeta de video en vez de
cambiar a un procesador de 64 bits
|
5) Software
de código abierto y código cerrado
El sistema operativo se
encarga de crear el vínculo entre los recursos materiales, el usuario y las
aplicaciones. Cuando un programa desea acceder a un recurso material, no
necesita enviar información específica a los dispositivos periféricos; simplemente
envía la información al sistema operativo, el cual la transmite a los
periféricos correspondientes a través de su controlador.
Código Abierto (open source): Es un software de
cualquier tipo cuyo código fuente está disponible para los usuarios en forma
editable, así como las distintas bibliotecas de desarrollo que se
utilizan. Los usuarios u otros desarrolladores de software pueden modificar
este código y personalizarlo siguiendo los lineamientos dados por el autor
original.
Los programas, incluyendo los
sistemas operativos y las aplicaciones, se crean usando un código de
programación. Los programadores escriben el código fuente, que luego se compila
para obtener un código ejecutable, creando el producto que finalmente se
ejecuta en la computadora.
Hay muchos sistemas operativos
para uso personal, para negocios y contextos industriales, y algunos de ellos
son de código cerrado y otros, de código abierto.
Ejemplo de sistemas Operativos Open Source :
Ubuntu, Fedora, Mint, open
SUSE, Debian, Linux, Mandriva entre otros.
Android desarrollados para
smartphones y tablets.
Código Cerrado: el código fuente no se encuentra disponible para
cualquier usuario, es decir no se hace público. Ejemplo de sistemas Operativos Cerrados: iOS y Windows.
6) Diferencias
entre productos de la familia Linux y Windows
Complejidad: Windows tiene una administración sencilla y no
necesita de conocimientos avanzados mientras que Linux requiere de mayores
conocimientos técnicos.
Las bases de datos: El alojamiento Windows utiliza bases de datos
Access, ampliamente extendidas entre los usuarios de ordenadores personales.
Para el alojamiento Linux, Loading utiliza la base de datos MySQL 4 que, pese a
ser ligeramente más difícil de utilizar, ofrecen un mayor rendimiento, por lo
que es la base de datos elegida por la mayoría de páginas Web.
Rendimiento: El sistema operativo Linux es conocido por su
fiabilidad y rendimiento. Windows consume más recursos de memoria y proceso,
por lo que necesita maquinas más potentes que su equivalente en Linux.
El coste: Debido al mayor consumo de recursos y al coste de las licencias de los
sistemas Windows, su coste es levemente superior al de su equivalente en Linux.
Software: Windows es de código cerrado mientras que Linux es de código abierto.
7) Llamados
al sistema
Las llamadas al sistema son interfaces de programación que sirven para
poder invocar los servicios que el sistema operativo nos ofrece. Estas llamadas
se encuentran escritas en lenguajes de alto nivel como C y C++. En general, las
llamadas a sistemas son accedidas mediante una API (interfaz de programación de
aplicaciones), en vez de invocarlas directamente, de esta manera se hace más
fácil el trabajo para un programador de aplicaciones.
Algunos ejemplos de llamadas al sistema son las
siguientes:
§ time, que permite obtener la fecha y hora del sistema.
§ write, que se emplea para
escribir un dato en un cierto dispositivo de salida, tales como una pantalla o
un disco magnético.
§ read, que es usada para leer de un dispositivo de entrada,
tales como un teclado o un disco magnético.
§ open, que es usada para obtener un descriptor de un archivo
del sistema, ese archivo suele pasarse a write.
La llamada a un
system call incluye las siguientes tareas:
– Cargar los parámetros en el lugar adecuado (stack o
registros).
– Cargar el número de system call en algún registro
específico (Ej: eax en Intel).
– Invocar a la interrupción por software (trap) adecuada
(system call handler).
– El hardware cambia el bit de modo a monitor e invoca al
manejador de la interrupción que controla que el número de system call pasado
en el registro sea menor que el mayor del sistema y, finalmente, invoca al
system call correspondiente.
– El valor retornado por el system call es puesto en un
registro específico (Ej.: eax en Intel).
No hay comentarios:
Publicar un comentario