martes, 27 de septiembre de 2016

Sistemas Operativos


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:
IRQ
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