AKTU 1er año Sem 1 Documento resuelto 2014-15 | COMP. SISTEMA Y PROGRAMACION C | Sec. A

Enlace de descarga de papel : Papel | Sem 1 | 2014-15

Tecnología B.
(SEM-I) EXAMEN DE TEORIA 2014-15
SISTEMA INFORMÁTICO Y PROGRAMACIÓN EN C

Tiempo: 3 horas
Marcas totales : 100

Nota :-

  • Intenta todas las preguntas. Las marcas se indica frente a cada pregunta.
  • Asumir datos adecuados siempre que sea necesario.
  • 1. Intenta CUATRO partes cualquiera: (5*4 = 20)

  1. ¿Cuáles son las clasificaciones de la computadora ? Explique dos en detalle.

    Los sistemas informáticos se pueden clasificar de la siguiente manera:

    1. Sobre la base del tamaño.
    2. Sobre la base de la funcionalidad.
    3. Sobre la base del tratamiento de datos.

    Clasificación según el tamaño.

    1. Súper computadoras:Las supercomputadoras son el sistema de mayor rendimiento. Una supercomputadora es una computadora con un alto nivel de rendimiento en comparación con una computadora de propósito general. El rendimiento real de una supercomputadora se mide en FLOPS en lugar de MIPS. Todas las 500 supercomputadoras más rápidas del mundo ejecutan sistemas operativos basados ​​en Linux. Se están realizando investigaciones adicionales en China, EE. UU., la UE, Taiwán y Japón para construir supercomputadoras aún más rápidas, de mayor rendimiento y tecnológicamente superiores. Las supercomputadoras en realidad juegan un papel importante en el campo de la computación y se utilizan para tareas de computación intensivas en varios campos, incluida la mecánica cuántica, el pronóstico del tiempo, la investigación climática, la exploración de petróleo y gas, el modelado molecular y las simulaciones físicas. y también a lo largo de la historia,
      ej: PARAM, jaguar, correcaminos.
    2. Computadoras centrales: comúnmente se denominan grandes de hierro, generalmente las grandes organizaciones las utilizan para el procesamiento de datos masivos, como estática, procesamiento de datos de censos, procesamiento de transacciones y se usan ampliamente como servidores, ya que estos sistemas tienen una mayor capacidad de procesamiento en comparación con las otras clases de computadoras, la mayoría de estas arquitecturas de mainframe se establecieron en la década de 1960, la investigación y el desarrollo trabajaron continuamente durante años y los mainframes de hoy son mucho mejores que los anteriores, en tamaño, capacidad y eficiencia.
      Por ejemplo: servidores IBM z Series, System z9 y System z10.
    3. Minicomputadoras: estas computadoras llegaron al mercado a mediados de la década de 1960 y se vendieron a un precio mucho más económico que las computadoras principales. En realidad, se diseñaron para el control, la instrumentación, la interacción humana y la conmutación de comunicaciones, a diferencia del cálculo y el mantenimiento de registros. se hizo muy popular para uso personal con la evolución.
      En los años 60 para describir las computadoras más pequeñas que se hicieron posibles con el uso de transistores y tecnologías de memoria central, conjuntos mínimos de instrucciones y periféricos menos costosos como el omnipresente Teletipo Modelo 33 ASR. Por lo general, ocupaban gabinetes de rack de una o unas pocas pulgadas, en comparación con los grandes mainframes que podían llenar una habitación, se acuñó un nuevo término «MINICOCOMPUTADORAS» , por
      ejemplo: computadora portátil personal, PC, etc.
    4. Microcomputadoras: una microcomputadora es una computadora pequeña y relativamente económica con un microprocesador como su CPU. Incluye un microprocesador, memoria y un circuito mínimo de E/S montado en una sola placa de circuito impreso. Las computadoras anteriores a estas, mainframes y minicomputadoras, eran comparativamente mucho más grandes, difíciles de mantener y más caras. De hecho, formaron la base de las microcomputadoras y los dispositivos inteligentes actuales que usamos en la vida cotidiana.
      Ej: Tablets, Smartwatches.

    Clasificación en función de la funcionalidad.

    1. Servidores: los servidores no son más que computadoras dedicadas que están configuradas para ofrecer algunos servicios a los clientes. Se nombran según el tipo de servicio que ofrecen. Por ejemplo: servidor de seguridad, servidor de base de datos.
    2. Estación de trabajo: Son las computadoras diseñadas principalmente para ser utilizadas por un solo usuario a la vez. Ejecutan sistemas operativos multiusuario. Son los que utilizamos para nuestro trabajo personal/comercial del día a día.
    3. Aparatos de información: Son los dispositivos portátiles que están diseñados para realizar un conjunto limitado de tareas como cálculos básicos, reproducir multimedia, navegar por Internet, etc. Generalmente se les conoce como dispositivos móviles. Tienen memoria y flexibilidad muy limitadas y, por lo general, se ejecutan «tal cual».
    4. Computadoras integradas: son los dispositivos informáticos que se utilizan en otras máquinas para cumplir con un conjunto limitado de requisitos. Siguen las instrucciones de la memoria no volátil y no se requieren para ejecutar un reinicio o reinicio. Las unidades de procesamiento utilizadas en dicho dispositivo funcionan solo con esos requisitos básicos y son diferentes de las que se utilizan en las computadoras personales, mejor conocidas como estaciones de trabajo.

    Clasificación sobre la base del tratamiento de datos

    1. Analógico: una computadora analógica es una forma de computadora que utiliza los aspectos continuamente cambiantes de los hechos físicos, como las cantidades eléctricas, mecánicas o hidráulicas, para modelar el problema que se está resolviendo. Todo lo que es variable con respecto al tiempo y continuo se puede considerar analógico al igual que un reloj analógico mide el tiempo por medio de la distancia recorrida por los radios del reloj alrededor de la esfera circular.
    2. Digital: Una computadora que realiza cálculos y operaciones lógicas con cantidades representadas como dígitos, generalmente en el sistema numérico binario de “0” y “1”, “Computadora capaz de resolver problemas procesando información expresada en forma discreta. a partir de la manipulación de las combinaciones de los dígitos binarios, puede realizar cálculos matemáticos, organizar y analizar datos, controlar procesos industriales y de otro tipo, y simular sistemas dinámicos como patrones climáticos globales.
    3. Híbrido: una computadora que procesa datos tanto analógicos como digitales, la computadora híbrida es una computadora digital que acepta señales analógicas, las convierte en digitales y las procesa en forma digital.
  2. Describir las funcionalidades de un sistema operativo .

    El objetivo fundamental de un Sistema Informático es ejecutar programas de usuario y facilitar las tareas. Se utilizan varios programas de aplicación junto con el sistema de hardware para realizar este trabajo. El sistema operativo es un software que administra y controla el conjunto completo de recursos y utiliza de manera efectiva cada parte de una computadora.

    La figura muestra cómo el sistema operativo actúa como un medio entre la unidad de hardware y los programas de aplicación.

    Funciones de un sistema operativo

    Un sistema operativo tiene una variedad de funciones para realizar. Algunas de las funciones destacadas de un sistema operativo pueden describirse en términos generales como:

    • Gestión del procesador : se ocupa de la gestión de la Unidad central de procesamiento (CPU). El sistema operativo se encarga de la asignación de tiempo de CPU a diferentes procesos. Cuando un proceso finaliza su procesamiento de CPU después de ejecutarse durante el período de tiempo asignado, esto se denomina programación.
    • Gestión de dispositivos:
      el sistema operativo se comunica con el hardware y los dispositivos conectados y mantiene un equilibrio entre ellos y la CPU. Esto es aún más importante porque la velocidad de procesamiento de la CPU es mucho mayor que la
      de los dispositivos de E/S. Para optimizar el tiempo de la CPU, el sistema operativo emplea dos técnicas: almacenamiento en búfer y cola de impresión.
    • Almacenamiento en búfer :
      en esta técnica, los datos de entrada y salida se almacenan temporalmente en el búfer de entrada y el búfer de salida. Una vez que la señal de entrada o salida se envía hacia o desde la CPU respectivamente, el sistema operativo a través del controlador de dispositivo mueve los datos del dispositivo de entrada al búfer de entrada y del dispositivo de salida al búfer de salida. En el caso de entrada, si el búfer está lleno, el sistema operativo envía una señal al programa que procesa los datos almacenados en el búfer. Cuando el búfer se vacía, el programa informa al sistema operativo que vuelve a cargar el búfer y la operación de entrada continúa.
    • Spooling (Operación Simultánea de Periféricos en Línea) :
      Esta es una técnica de administración de dispositivos utilizada para el procesamiento de diferentes tareas en el mismo dispositivo de entrada/salida. Cuando hay varios usuarios en una red que comparten el mismo recurso, puede existir la posibilidad de que más de un usuario le dé un comando en el mismo momento. Entonces, el sistema operativo almacena temporalmente los datos de cada usuario en el disco duro de la computadora a la que está conectado el recurso. El usuario individual no necesita esperar a que se complete el proceso de ejecución. En cambio, el sistema operativo envía los datos del disco duro al recurso uno por uno.
      Ejemplo: impresora
    • Gestión de la memoria :
      en una computadora, tanto la CPU como los dispositivos de E/S interactúan con la memoria. Cuando se necesita ejecutar un programa, se carga en la memoria principal hasta que se completa la ejecución. A partir de entonces, ese espacio de memoria se libera y está disponible para otros programas. Las técnicas comunes de administración de memoria utilizadas por el sistema operativo son el particionamiento y la memoria virtual.
    • Particionamiento:
      La memoria total se divide en varias particiones del mismo tamaño o de diferentes tamaños. Esto ayuda a acomodar una serie de programas en la memoria. La partición puede ser fija, es decir, permanece igual para todos los programas en la memoria o variable, es decir, la memoria se asigna cuando se carga un programa en la memoria. El último enfoque provoca menos pérdida de memoria pero, con el tiempo, puede fragmentarse.
    • Memoria virtual :
      esta es una técnica utilizada por los sistemas operativos que permite que el usuario pueda cargar los programas que son más grandes que la memoria principal de la computadora. En esta técnica, el programa se ejecuta incluso si el programa completo no se puede cargar dentro de la memoria principal, lo que lleva a una utilización eficiente de la memoria.
    • Administración de archivos:
      el sistema operativo administra los archivos, carpetas y sistemas de directorios en una computadora. Cualquier dato en una computadora se almacena en forma de archivos y el sistema operativo mantiene información sobre todos ellos utilizando la Tabla de asignación de archivos (FAT). La FAT almacena información general sobre archivos como nombre de archivo, tipo (texto o binario), tamaño, dirección de inicio y modo de acceso (secuencial/secuencial indexado/directo/relativo). El administrador de archivos del sistema operativo ayuda a crear, editar, copiar, asignar memoria a los archivos y también actualiza la FAT. El sistema operativo también se ocupa de que los archivos se abran con los derechos de acceso adecuados para leerlos o editarlos.
  3. Convierta el número hexadecimal A9C5.DB4 16 a número octal

    (A9C5.DB4) 16
    = (1 010 100 111 000 101.110 110 110 100) 2
    = (124705.6664) 8

  4. (d) Dibuja un diagrama de flujo para encontrar la suma y el reverso de un número dado.
  5. Discuta las diversas funcionalidades del compilador , el enlazador y el cargador .

    Compilador:
    el procesador de lenguaje que lee el programa fuente completo escrito en lenguaje de alto nivel de una sola vez y lo traduce a un programa equivalente en lenguaje de máquina se denomina compilador.
    Ejemplo: C, C++, C#, Java

    En un compilador, el código fuente se traduce correctamente a código objeto si no tiene errores. El compilador especifica los errores al final de la compilación con números de línea cuando hay errores en el código fuente. Los errores deben eliminarse antes de que el compilador pueda volver a compilar correctamente el código fuente.>

    Linker es un programa en un sistema que ayuda a vincular módulos de objetos de un programa en un solo archivo de objeto. Realiza el proceso de vinculación. Linker también se llama editores de enlaces. La vinculación es el proceso de recopilar y mantener una pieza de código y datos en un solo archivo. Linker también vincula un módulo en particular a una biblioteca del sistema. Toma módulos de objeto del ensamblador como entrada y del archivo ejecutable como salida para el cargador.

    La vinculación se realiza tanto en tiempo de compilación cuando el código fuente se traduce a código de máquina como en tiempo de carga cuando el cargador carga el programa en la memoria. La vinculación se realiza en el último paso de la compilación de un programa.

    Código fuente -> compilador -> Ensamblador -> Código objeto -> Enlazador -> Archivo ejecutable -> Cargador

    Loader es el programa del sistema operativo que carga el ejecutable desde el disco a la memoria principal (RAM) para su ejecución . Asigna el espacio de memoria al módulo ejecutable en la memoria principal y luego transfiere el control a la instrucción inicial del programa.

  6. ¿Qué es la clase de almacenamiento ? Describa automático, registro, estático y externo con una sintaxis ordenada.

    Las clases de almacenamiento se utilizan para describir las características de una variable/función. Estas características incluyen básicamente el alcance, la visibilidad y el tiempo de vida que nos ayudan a rastrear la existencia de una variable en particular durante el tiempo de ejecución de un programa.

    El lenguaje C utiliza 4 clases de almacenamiento , a saber:

    1. auto : esta es la clase de almacenamiento predeterminada para todas las variables declaradas dentro de una función o un bloque. Por lo tanto, la palabra clave auto rara vez se usa al escribir programas en lenguaje C. Solo se puede acceder a las variables automáticas dentro del bloque/función en el que se han declarado y no fuera de ellas (lo que define su alcance). Por supuesto, se puede acceder a estos dentro de bloques anidados dentro del bloque/función principal en el que se declaró la variable automática. Sin embargo, también se puede acceder a ellos fuera de su alcance utilizando el concepto de punteros dado aquí apuntando a la ubicación de memoria exacta donde residen las variables. Se les asigna un valor basura por defecto cada vez que se declaran.
    2. externo: la clase de almacenamiento externo simplemente nos dice que la variable está definida en otro lugar y no dentro del mismo bloque donde se usa. Básicamente, el valor se le asigna en un bloque diferente y esto también se puede sobrescribir/cambiar en un bloque diferente. Entonces, una variable externa no es más que una variable global inicializada con un valor legal donde se declara para usarse en otro lugar. Se puede acceder desde cualquier función/bloque. Además, una variable global normal también se puede convertir en externa colocando la palabra clave ‘externa’ antes de su declaración/definición en cualquier función/bloque. Básicamente, esto significa que no estamos inicializando una nueva variable, sino que estamos usando/accediendo solo a la variable global. El objetivo principal de usar variables externas es que se puede acceder a ellas entre dos archivos diferentes que forman parte de un programa grande.enlace _
    3. static : esta clase de almacenamiento se usa para declarar variables estáticas que se usan popularmente al escribir programas en lenguaje C. ¡Las variables estáticas tienen la propiedad de preservar su valor incluso después de que estén fuera de su alcance! Por lo tanto, las variables estáticas conservan el valor de su último uso en su alcance. Entonces podemos decir que se inicializan solo una vez y existen hasta la finalización del programa. Por lo tanto, no se asigna memoria nueva porque no se vuelven a declarar. Su alcance es local a la función para la que fueron definidos. Se puede acceder a las variables estáticas globales desde cualquier parte del programa. Por defecto, el compilador les asigna el valor 0.
    4. registro : esta clase de almacenamiento declara variables de registro que tienen la misma funcionalidad que las variables automáticas. La única diferencia es que el compilador intenta almacenar estas variables en el registro del microprocesador si se dispone de un registro libre. Esto hace que el uso de las variables de registro sea mucho más rápido que el de las variables almacenadas en la memoria durante el tiempo de ejecución del programa. Si no hay un registro libre disponible, estos se almacenan solo en la memoria. Por lo general, algunas variables a las que se accede con mucha frecuencia en un programa se declaran con la palabra clave de registro, lo que mejora el tiempo de ejecución del programa. Un punto importante e interesante a tener en cuenta aquí es que no podemos obtener la dirección de una variable de registro usando punteros.

    Para especificar la clase de almacenamiento para una variable, se debe seguir la siguiente sintaxis:

    Sintaxis:

    storage_class var_data_type var_name; 

Publicación traducida automáticamente

Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *