sebastesana
Usuario (Argentina)
Los sistemas operativos (SO) son una parte esencial de cualquier sistema informático. Este campo esta cambiando muy rápidamente, ya que ahora las computadoras se encuentran prácticamente en cualquier aplicación, desde juegos para niños hasta herramientas de planificación extremadamente sofisticadas para los gobiernos y las grandes multinacionales. Sin embargo, su concepto no es muy claro para algunos usuarios de SO. Un sistema operativo (SO) es un programa que administra el hardware de una computadora. También proporciona las bases para los programas de aplicación y actúa como intermediario entre el usuario y el hardware de la computadora. Un aspecto sorprendente de los SO es la gran variedad de formas en que lleva a cabo estas tareas. Los SO para main-frame están diseñados principalmente para optimizar el uso del hardware. Los SO de las computadoras personales (PC) soportan desde complejos juegos hasta aplicaciones de negocios. Los SO para computadoras de mano están diseñados para proporcionar un entorno en el que el usuario pueda interactuar fácilmente con la computadora para ejecutar programas. Por tanto, algunos SO se diseñan para ser prácticos, otros para ser eficientes y otros para ser ambas cosas. Dado que un SO es un software grande y complejo, debe crearse pieza por pieza. Cada una de estas piezas deberá ser una parte bien diseñada del sistema, con entradas, salida y funciones cuidadosamente definidas. ¿Qué hace un sistema operativo? Comenzamos fijándonos en el papel del SO en un sistema informático global. Un sistema informático puede dividirse a grandes rasgos en cuatro componentes: el hardware, el sistema operativo, los programas de aplicación y los usuarios.El hardware, la unidad central de procesamiento (CPU), la memoria principal (MP) y los dispositivos de entrada / salida (E/S), proporciona los recursos básicos de cómputo al sistema. Los programas de aplicación, como son los procesadores de texto, las hojas de cálculo, los compiladores y los exploradores web, definen la forma en que estos recursos se emplean para resolver los problemas informáticos de los usuarios. El SO controla y coordina el uso del hardware entre los diversos programas de aplicación por parte de los distintos usuarios.Un SO es similar a un gobierno. Como un gobierno, no realiza ninguna función útil por sí mismo: simplemente proporciona un entorno en el que otros programas pueden llevar a cabo un trabajo útil.Para comprender mejor el papel de un SO, vamos a abordar los sistemas operativos desde dos puntos de vista: el de usuario y el de sistema.· la visión del usuario de la computadora varía de acuerdo con la interfaz que utilice. La mayoría de los usuarios que se sientan frente a una PC dispone de un monitor, teclado, mouse y una unidad de sistema. Un sistema así se diseña para que un usuario monopolice sus recursos. En este caso, el SO se diseña principalmente para que sea de fácil uso, prestando cierta atención al rendimiento y ninguna a la utilización de recursos (el modo en el que se comparten los recursos hardware y software). Por supuesto, el rendimiento es importante para el usuario, pero más que la utilización de recursos, estos sistemas se optimizan para el uso del mismo por un solo usuario. En otros casos, un usuario se sienta frente a un terminal conectado a un mainframe o una microcomputadora. Otros usuarios acceden simultáneamente a través de otros terminales. Estos usuarios compraten recursos y pueden intercambiar información. En tales caso, el SO se diseña para maximizar la utilización de recursos, asegurar que todo el tiempo de CPU, MP y E/S disponibles se usen de forma eficiente y que todo usuario disponga solo de la parte equitativa que le corresponde. En otros casos, los usuarios usan estaciones de trabajo conectadas a redes de otras estaciones de trabajo y servidores. Estos usuarios tienen recursos dedicados a su disposición, pero también tienen recursos compartidos como la red y los servidores (servidores de archivos, de cálculo y de impresión). Por tanto, su SO está diseñado para llegar a un compromiso entre la usabilidad individual y la utilización de recursos. Algunas computadoras pueden tener poca o ninguna interacción con el usuario, como por ejemplo, las computadoras incorporadas en los electrodomésticos y el los automóviles pueden disponer de teclados numéricos e indicadores luminosos que se encienden y se apagan para mostrar el estado, estos equipos como el SO están diseñados para no tener intervención con el usuario.· Desde el punto de vista de la computadora, el So es el programa más íntimamente relacionado con el hardware. En este contexto, podemos ver un SO como un asignador de recursos. Un sistema informático tiene muchos recursos que pueden ser necesarios para solucionar un problema: tiempo de CPU, espacio de memoria, espacio de almacenamiento de archivos, dispositivos de E/S, etc. El SO actúa como administrador de estos recursos.En general, no disponemos de ninguna definición de sistema operativo (SO) que sea completamente adecuada. Los SO existen por que ofrecen una forma razonable de resolver el problema de crear un sistema informático utilizable. El objetivo fundamental de las computadoras es ejecutar programas de usuario y resolver los problemas del mismo fácilmente. Con este objetivo se construye el hardware de la computadora. Debido a que el hardware por sí solo es difícil de manejar, se desarrollan programas de aplicación. Estos programas requieren ciertas operaciones comunes, tales como als que controlan los dispositivos de E/S. las operaciones habituales de control y asignación de recursos se incorporan en una misma pieza del software: EL SISTEMA OPERATIVO.

Recomiendo: Lógica proposicional y de predicados (Parte 2) http://www.taringa.net/posts/ciencia-educacion/15349770/Logica-proposicional-y-de-predicados-_Parte-2_.html

Seguridad: en los sistemas informáticos se refiere a que los recursos tienen la cualidad de seguro, esto es están libres de todo peligro, daño o riesgo.Recursos: Lógicos o físicos, necesarios para la ejecución de Procesos.Protección: se refiere a las medidas que se tomarán para que los recursos estén seguros.Hay 5 objetivos que se deben cumplir si un sistema es seguro:•Confidencialidad: mientras el dueño no diga lo contrario el recurso es secreto.•Integridad: el recurso completo debe permanecer en un estado consistente, esto es, las modificaciones deben seguir una norma y además deben ser autorizadas.•Disponibilidad: los datos o recursos siempre deben estar disponibles para las personas autorizadas.•Robo de servicio: es el uso No-Autorizado de Recursos. Por ej. Alguien podría instalar en el sistema un demonio que se comporte como servidor de archivos y ceda los archivos a cuanto usuario acceda.•Exclusión de los usuarios externos (Denegación de servicio): se debe impedir el acceso ilegítimo al recurso.Intruso: personas que husmean en donde no tienen que hacerlo. Hay dos tipos, el pasivo que quiere sólo leer archivos y el activo que además quiere modificarlos.Hacker: gente apasionada por la seguridad informática, es decir tratan de mostrar cuán inseguro es un sistema, sin hacer daños.Cracker: haciendo uso de las cualidades de hacker, esta persona se comporta con malas intenciones: daño, robo, etc.Amenaza: posibilidad de que se viole la seguridad.Ataque: intento de romper la seguridad. Pueden ser por: Mascarada, por reproducción, por interposición, secuestro de sesión, etc.Mascarada: hacer creer que se trata de otra persona o de otra máquina o de otro programa. Rompen la autenticación.Autenticación: técnica que permite verificar que se trata de la persona que dice que es. Tanto para el ingreso como usuario como para el envío de mensajes.Spam: se determina si al correo basura o SMS basura, mensajes no solicitados, no deseados o de remitente desconocido, comúnmente de tipo publicitario y enviados en grandes cantidades que perjudican al receptor.Caballo de Troya: se trata de un software malicioso que se presenta al usuario como un programa aparentemente legítimo e inofensivo pero que al ejecutarse ocasiona daños.Spyware: es un programa espía que se instala en un computador sin que su usuario se dé cuenta para recopilar información sobre las actividades realizadas en éste. Uno de los principales software de este tipo es el que difunde Microsoft para tratar de averiguar si el software es legítimo o no.Puerta trasera o trampa: es un hueco o agujero en los programas realizados por comodidad o agilidad en los procedimientos de seguridad normales. Luego pueden ser usados por el mismo autor o por un intruso.Bomba lógica: es un código insertado intencionalmente en un sistema informático que permanece oculto hasta que se cumplan una o más condiciones reprogramadas y en ese momento ejecuta una acción maliciosa.Desbordamiento de pila y de buffer: es un problema aritmético que hace referencia al exceso de flujo de datos almacenados en la pila de una función. Esto permite que la dirección de retorno de la pila pueda ser modificada por otra parte de un atacante para obtener un beneficio propio que generalmente es malicioso. Por desgracia los compiladores del lenguaje C tienen la falencia de no controlar los límites en los arreglos, por ejemplo. Aprovechando esta debilidad pueden colocarse en las zonas desbordadas códigos de programas malignos.Virus: es un malware que tiene por objeto alterar el normal funcionamiento del computador, sin permiso o conocimiento del usuario. Habitualmente reemplazan archivos ejecutables por otros infectados con el código de éste. Los virus pueden destruir, de manera intencionada, los datos almacenados en un computador, no se replican asimismo porque no tienen esa facultad como el gusano, pero son muy nocivos y algunos contienen además una carga dañina (payload) con distintos objetivos, desde una simple broma hasta realizar daños importantes en los sistemas o bloquear las redes generando un tráfico inútil.El código del virus queda residente (alojado) en la memoria principal del computador, a pesar que el programa que lo contenía ya haya terminado de ejecutarse. El virus toma entonces el control de los servicios básicos del sistema operativo, infectando a todos los archivos ejecutables que sean llamados para su ejecución. Finalmente se agrega el código del virus al programa infectado y se graba en el disco con lo cual el proceso de replicado se completa.Gusano: un gusano también llamado WORM tiene la propiedad de duplicarse a sí mismo. Los gusanos utilizan las partes automáticas de un sistema operativo que generalmente son invisibles al usuario. A diferencia de un virus, un gusano no precisa alterar los archivos de programas, sino que reside en la memoria y se duplica a sí mismo. Los gusanos casi siempre causan problemas en la red (aunque sea simplemente consumiendo ancho de banda), mientras que los virus siempre infectan o corrompen los archivos de la computadora que atacan.Escaneo de puertos: es un método usado por los piratas informáticos cuando encuentran una dirección IP activa y se dedican a ver que hay disponible o que partes pueden ser atacadas. Por ejemplo si el puerto 25 (para envío de mails) está abierto y la comunicación tiene éxito, podría tratar de comunicarse con el servicio que responda en otros sistemas.Criptografía o cifrado: es la técnica que altera las representaciones de un mensaje. Es decir, un mensaje o un archivo conocido como texto simple o en claro y convertirlo en texto cifrado. Se utiliza para restringir los emisores y/o receptores potenciales de un mensaje. También permite al receptor de un mensaje verificar que el mensaje ha sido creado por alguna computadora que posee una cierta clave: esa clave es el origen del mensaje.Claves: se denominan así a los parámetros secretos de los algoritmos de cifrado.Cifrado simétrico: es un algoritmo que usa la misma clave para cifrar y para descifrar. Por lo tanto, es necesario proteger el secreto de la función de encriptación con el valor de la clave, como así también el secreto de la función de desencriptación con el valor de la clave. También se conocen como criptografía de clave secreta o seguridad por oscuridad.Cifrado asimétrico: en estos algoritmos las claves de cifrado y descifrado son distintas. También se conocen como criptografía de clave pública, ya que la clave de cifrado se puede hacer pública y sólo hay que mantener secreta la clave de descifrado privada.Algoritmo de firma digital: sirve para autenticar al emisor del mensaje.Función Hash: es una función o método para generar claves que representen de manera única a un documento, registro, archivo, etc., logrando un resumen o identificando un dato basándose en la probabilidad. Un hash es el resultado de dicha función. Una función hash crea un bloque de datos de tamaño fijo a partir de bloques de cualquier tamaño. Sirve normalmente para achicar el universo que representa el archivo original llevándolo a un archivo de un tamaño fijo. En criptografía de clave pública se lo usa por ejemplo cuando se aplica la clave privada al hash del archivo original y se lo conoce como bloque de firma.Certificado digital: es una clave pública firmada digitalmente por un organismo de confianza. El organismo de confianza recibe la prueba de identificación de alguna entidad y certifica que la clave pública pertenece a dicha entidad.Tarro de miel: forma transparente de desviar la actividad de un intruso, recurriendo a un falso recurso que queda expuesto al atacante. Dicho recurso parece real a los ojos del atacante y permite el sistema monitorizar y obtener información acerca del ataque.Cajas de arena: así se denomina el método que trata de confinar la ejecución de un programa en una sección controlada por el sistema. Por ejemplo un antivirus analiza el comportamiento del código en la caja de arena antes de dejar que se ejecute sin monitorización.Cortafuegos o firewalls: es un dispositivo, un computador o un router que divide y limita las conexiones basándose en la dirección de origen/destino, puerto de origen/destino o la dirección de la conexión. Limita el acceso a la red entre dos dominios de seguridad y monitorizar y registran todas las conexiones. Se utiliza para separar los sistemas de confianza de los de no confianza. También existen los cortafuegos de tipo proxy de aplicación que entiende los protocolos que utilizan las aplicaciones de manera que monitorizar el tráfico a medida que se envían los mensajes.Testigo de acceso de seguridad o token: estructura de seguridad que crea Windows y que incluye el ID del usuario, los ID del grupo donde el usuario sea miembro y una lista de los privilegios especiales que tenga el usuario. Todo proceso que Windows ejecute en nombre de un usuario recibirá una copia del testigo de acceso. El sistema usa los ID de testigo de acceso para conceder o denegar el acceso a los objetos del sistema cuando el usuario o un proceso en nombre del usuario intenta acceder al objeto.Descriptor de seguridad: estructura que permite guardar los atributos de seguridad de un objeto en Windows. Contiene ID de seguridad del propietario del objeto, el ID de seguridad del grupo (usado por el subsistema POSIX) y una lista discrecional de control de acceso que identifica qué usuarios o grupo tienen permiso o no de acceso y una lista de control de acceso del sistema que controla qué mensajes de auditoría generará el sistema. Por ejemplo, habrá un descriptor de seguridad por archivo.Espero les sirva!

CONCEPTO DE TRADUCTOR: Un traductor se define como un programa que traduce o convierte desde un texto o programa escrito en un lenguaje fuente hasta un texto o programa equivalente escrito en un lenguaje destino produciendo, si cabe, mensajes de error.APLICACIÓN: Proceso de Compilación.COMPILADOR: Es aquel traductor que tiene como entrada sentencias en un lenguaje formal y como salida tiene un fichero en un lenguaje de bajo nivel, es decir, realiza una traducción de un de lenguaje alto nivel (LAN) a código máquina. Ejemplo: C++ , Delphi , VisualBasic, etc.INTERPRETE: Es un traductor/ejecutor que toma como entrada sentencias escritas en un lenguaje formal y como salida realiza la ejecución de dichas sentencias sin almacenarlas, es decir, que traduce sentencia por sentencia de un LAN y la va ejecutando sin crear un fichero donde se guarde el código de máquina correspondiente. Ejemplo: Lisp, Snobol, etc.PSEUDOINTERPRETE: Algunos lenguajes intentan aunar las ventajas de los compiladores y de los intérpretes y evitar sus desventajas; son los lenguajes pseudointerpretados. En estos, el programa fuente pasa por un pseudocompilador que genera un pseudoejecutable. Para ejecutar este pseudoejecutable se le hace pasar por un motor de ejecución que lo interpreta de manera relativamente eficiente. Ejemplo: Java, Cobol, etc.PREPROCESADORES: Permiten modificar el programa fuente antes de la verdadera compilación. Hacen uso de macroinstrucciones y directivas de compilación. Por ejemplo, en lenguaje C++, el preprocesador sustituye la directiva #include Uno.c por el código completo que contiene el fichero “Uno.c”, de manera que cuando el compilador comienza su ejecución se encuentra con el código ya insertado en el programa fuente. Algunasotras directivas de preprocesamiento permiten compilar trozos de códigos opcionales (lenguajes C++ y Clipper): #ifndef, #endif, #define. Los preprocesadores suelen actuar de manera transparente para el programador, pudiendo incluso considerarse que son una fase preliminar del compilador.INTÉRPRETES DE COMANDOS: Un intérprete de comandos traduce sentencias simples a invocaciones a programas de una biblioteca. Se utilizan especialmente en los sistemas operativos (la shell de Unix es un intérprete de comandos). Los programas invocados pueden residir en el kernel (núcleo) del sistema o estar almacenados en algún dispositivo externo como rutinas ejecutables que se traen a memoria bajo demanda. Por ejemplo, si bajo MS-DOS se teclea el comando copy se ejecutará la función de copia de ficheros del sistema operativo, que se encuentra residente en memoria.ENSAMBLADOR: Un ensamblador es un compilador sencillo, en el que el lenguaje fuente tiene una estructura tan simple, que permite la traducción de cada sentencia fuente a una única instrucción en códigomáquina. Al lenguaje que admite este compilador también se le llama lenguaje ensamblador o simbólico. Este lenguaje fuente utiliza nemotécnicos para hacer referencia a operaciones, registros, direcciones de memoria, etc. En definitiva, existe una correspondencia uno a uno entre las instrucciones ensamblador y las instrucciones máquina.Ejemplo: Instrucción ensamblador INTEL 8088: MOV AH,09hCódigo máquina generado en Binario: 1011- 0100- 0000- 1001CONVERSORES FUENTE-FUENTE: Permiten traducir desde un LAN (Lenguaje de Alto Nivel) a otro LAN, con lo que se consigue una mayor portabilidad de estos lenguajes. Por ejemplo un conversor de Java a C++, permitiría ejecutar programas escritos en Java en computadores que solo tengan compilador de C++.TRADUCTORES DE IDIOMAS: Son traductores de lenguajes naturales, es decir, tienen como entrada un texto escrito en un idioma y dan como salida una texto equivalente escrito en otro idioma. Por ejemplo: Systran (traductor Inglés-Español), Traductor del Google (varios idiomas al español y viceversa), etc.COMPILADOR: Por regla general un compilador no produce un fichero ejecutable, sino que el código generado se estructura en módulos que se almacenan en un fichero objeto. Los ficheros objeto poseen información relativa tanto al código máquina como a una tabla de símbolos que almacena la estructura de las variablesy tipos utilizados por el programa fuente.ENLAZADOR: Engloba en un único bloque los distintos módulos que almacenan código máquina, estructura el bloque de memoria destinado a almacenar las variables en tiempo de ejecución y genera el ejecutable final incorporando algunas rutinas adicionales procedentes de librerías.CARGADOR: El fichero ejecutable consta de varios segmentos, entre ellos el de código máquina, el de datos y el de pila. En estos segmentos se hace referencia a direcciones de memoria principal en forma relativa. El cargador, que suele ser parte del S.O., coloca los diferentes segmentos del fichero ejecutable en las direcciones de memoria disponibles. De tal modo que a las direcciones relativas del código se le suma la dirección base del segmento correspondiente, para obtener la dirección absoluta de memoria que tomará el microprocesador para acceder a una variable o realizar una bifurcación.Espero les sirva! Puntos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Recomiendo Teoría de Conjuntos (Parte 1) http://www.taringa.net/posts/ciencia-educacion/14749113/Teoria-de-conjuntos-_Parte-1_.html Lógica proposicional y de predicados (Parte 1) http://www.taringa.net/posts/ciencia-educacion/15322747/Logica-proposicional-y-de-predicados-_Parte-1_.html

PARTE 1 Mención especial al ingeniero JORGE BUABUD por el aporte.
Una breve historia del ENIACLa primera generación: los tubos de vacío ENAC: El ENIAC (Electronic Numerical Integrator And Computer), diseñado y construido bajo la supervisión de John Mauchly y Jhon Prester Eckert en la universidad de Pennsylvania, fue el primer computador electrónico de propósito general del mundo.El ENIAC era una máquina decimal y no binaria. Es decir, los números estaban representados en forma decimal y la aritmética se realizaba también en el sistema decimal. Su memoria consistía en veinte “acumuladores”, cada uno capaz de contener un número decimal de diez dígitos. Cada dígito estaba representado por un anillo de diez tubos de vacío. En un momento dado, solo uno de los tubos de vacío estaba en estado ON representando uno de los diez dígitos. Uno de los mayores inconvenientes de ENIAC era que tenía que ser programado manualmente mediante conmutadores y conectando y desconectando cables. La máquina de von Newman. La tarea de cargar y modificar programas para el ENIAC era extremadamente tediosa. El proceso de programación podría ser más fácil si el programa se representara en una forma adecuada para ser guardado en la memoria junto con los datos. Entonces, un computador podría conseguir sus instrucciones leyéndolas de la memoria, y se podría hacer o modificar un programa colocando los valores en una zona de memoria. Esta idea conocida como concepto del programa-almacenado, se atribuye a los diseñadores del ENIAC, sobre todo al matemático Jhon von Newman, que era asesor del proyecto ENIAC. En 1946 von Newman y sus colegas empezaron, en el instituto para Estudios avanzados de Princeton, el diseño de un nuevo computador de programa-almacenado, que llamaron IAS. El computador IAS, no completado hasta 1952, es el prototipo de toda una serie de computadores de propósito general.Estructura general del computador IAS. Consta de:• Una memoria principal que almacena tanto datos como instrucciones (hace referencia a instrucciones de máquina, NO instrucciones de lenguaje de alto nivel).• Una unidad aritmético-lógica (ALU) capaz de hacer operaciones con datos binarios.• Una unidad de control que interpreta las instrucciones en memoria y provoca su ejecución.• Un equipo de entrada salida (E/S) dirigido por la unidad de control. Esta estructura fue esbozada en la primera proposición de von Newman, que merece la pena mencionar en estos momentos:1. Primero: como el dispositivo es principalmente un computador, tendrá que realizar las operaciones aritméticas elementales muy frecuentemente. Estas son la suma, la resta, la multiplicación y la división. Es por tanto razonable que contenga elementos especializados solo en estas operaciones. Tendrá que existir la parte de aritmética central que constituirá la primera parte específica: CA (Central Arithmetical).2. Segundo: la secuencia adecuada de las operaciones, debe ser realizado eficientemente por un órgano de control central. Si el dispositivo tiene que ser versatíl, es decir, lo más cercano a servir para todo uso, entonces hay que hacer una distinción entre las instrucciones específicas que se dan y definir un problema particular, y los órganos de control general que se ocupan de que se lleven a cabo estas instrucciones (sean cuales sean). Las primeras deben almacenarse en algún lugar, las otras deben representarse definiendo partes operativas del dispositivo. Con el control central nos referimos solo a esta última función, y los órganos que la realizan forman la segunda parte específica: CC (Central Control).3. Tercero: cualquier dispositivo que realice secuencias largas y compicadas de operaciones (concretamente de cálculo) debe tener una memoria considerable. La memoria total es la tercera parte específica del dispositivo: M (Memoria). Las tres partes especificas CA, CC (juntas C)y M corresponden a las neuronas asociativas del sistema nervioso humano. El dispositivo tiene que estar dotado con la habilidad de mantener contacto de entada y salida (sensorial y motor) con medios específicos de este tipo: el medio será llamado el medio de grabación del dispositivo: R (Recording) 4. Cuarto: el dispositivo tiene que tener órganos para trasferir información a partir de R a sus partes específicas C y M. estos órganos forman su entrada, la cuarta parte específica: I (Input). Veremos que lo mejor es hacer todas las transferencias a partir de R (mediante I) hasta M y nunca directamente a partir de C.5. Quinto: el dispositivo tiene que tener órganos para trasferir información a partir de sus partes específicas C y M hacia R. Estos órganos forman su salida, la quinta parte específica: O (Output). Veremos que lo mejor es hacer todas las transferencias a partir deM (mediante O) a R, y nunca a partir de C.Salvo raras excepciones, todos los computadores de hoy en día tienen la misma estructura general y funcionamiento que las máquinas de von Newman. Por eso, merece la pena describir brevemente la manera de operar del computador IAS.La memoria del IAS consiste en 1000 posiciones de almacenamiento, llamadas palabras, de cuarenta dígitos binarios (bits) cada una (No hay una definición universal del término palabra. En general una palabra es un conjunto ordenado de bytes o bits que representa la unidad básica de almacenamiento de información que se puede almacenar, trasmitir o con la que se puede operar en un determinado computador, normalmente, si un procesador tiene un conjunto de instrucciones de longitud fija, entonces la longitud de las instrucciones es igual a la longitud de la palabra). Tanto los datos como las palabras se almacenan ahí. Por tanto, los números se pueden representar en forma binaria y cada instrucción tiene también un código binario. Cada número se representa con un bit de signo y 39 bits de valor. Una palabra puede contener también dos instrucciones de veinte bit, donde cada instrucción consiste en un código de operación de ocho bits (codop) que especifica la operación que se va a realizar y una dirección de doce bits que indica una de las palabras de la memoria (numeradas de 0 a 99).La unidad de control dirige al IAS captando instrucciones de la memoria y ejecutando una a una. Para explicar esto, se necesita un diagrama de estructura más detallado. Esta figura nos muestra que tanto la unidad de control como la ALU contienen posiciones de almacenamiento, llamadas registros, de finidos de la siguiente manera: El IAS opera ejecutando rápidamente un ciclo de instrucción. Cada ciclo de instrucción consta de dos subciclos. Durante el ciclo de captación, el codop de la siguiente instrucción es cargado en el IR y la parte que contiene la dirección es almacenada en el MAR. Esta instrucción puede ser captada desde el IBR, o puede ser obtenida de la memoria cargando una palabra en el MBR, y luego en IBR, IR y MAR.¿Por qué la indirección? Todas estas operaciones están controladas por circuitos electrónicos, y dan lugar al uso de caminos de datos. Para simplificar la electrónica, se usa un solo registro para especificar la dirección en memoria para lectura o escritura, y un solo registro para la fuente o el destino.Una vez que el codop está en el IR, se lleva a cabo el ciclo de ejecución. Los circuitos de control interpretan el codop y ejecutan la instrucción enviando las señales de control adecuadas para provocar que los datos se transfieran o que la ALU realice una operación.El computador IAS tiene un total de 21 instrucciones, estas se pueden agrupar de la siguiente manera: La parte de codop (los ocho primeros bits) especifican cual de las 21 instrucciones va a ser ejecutada. La parte de la dirección (los doce bits restantes) especifican cual de las 1000 posiciones de memoria está implicada Espero les sirva!
ORGANIZACIÓN Y ARQUITECTURACuando se describe un computador, frecuentemente se distingue entre arquitectura y organización. La arquitectura de computadoras se refiere a los atributos de un sistema que son visibles a un programador, o para decirlo de otra manera, aquellos atributos que tienen un impacto directo en la ejecución lógica de un programa. La organización de computadores se refiere a las unidades funcionales y sus interconexiones, que dan lugar a especificaciones arquitectónicas. Entre los ejemplos de atributos arquitectónicos se encuentran el conjunto de instrucción, el número de bit usados para representar varios tipos de datos (números, caracteres, etc.), mecanismos de Entrada/ Salida E/S y técnicas para direccionamiento de memoria. Entre los atributos de organización se incluyen aquellos detalles de hardware transparentes al programador, tales como señales de control, interfaces entre el computador y los periféricos y la tecnología de memoria usada. ESTRUCTURA Y FUNCIONAMIENTOUn computador es un sistema complejo; los computadores de hoy en día contienen millones de componentes electrónicos básicos. ¿Cómo podríamos describirlos claramente? La clave está en reconocer la naturaleza jerárquica de la mayoría de los sistemas complejos, incluyendo el computador. Un sistema jerárquico es un conjunto de subsistemas interrelacionados cada uno de los cuales, a su vez, se organiza en una estructura jerárquica hasta que se alcanza el nivel más bajo del subsistema elemental. La naturaleza jerárquica de los sistemas complejos es esencial tanto para si diseño como para su descripción. El diseñador necesita tratar solo con un nivel particular del sistema a la vez. En cada nivel del sistema consta de un conjunto de componentes y sus interrelaciones. El comportamiento de cada nivel depende solo de una caracterización abstracta y simplificada del sistema que hay en el siguiente nivel más bajo. De cada nivel al diseñador le importan la estructura y el funcionamiento: • Estructura: el modo en el que los componentes están interrelacionados.• Funcionamiento: la operación de cada componente individual como parte de la estructura.En términos de descripción tenemos dos opciones: empezar por lo más bajo y construir una descripción completa, o comenzar con una visión desde arriba y descomponer el sistema en sus subpartes. La experiencia a partir de muchos campos nos ha enseñado que de la descripción de arriba abajo (top-down) es la más clara y efectiva.FUNCIONAMIENTOLas funciones básicas que un computador puede llevar a cabo, en términos generales son cuatro:• Procesamiento de datos.• Almacenamiento de datos.• Transferencia de datos.• Control.El computador, por supuesto, tiene que ser capaz de procesar datos. Los datos pueden adoptar una gran variedad de formas, y el rango de los requisitos de procesado es amplio. Sin embrago, veremos que hay solo unos pocos métodos o tipos fundamentales de procesado de datos. También es esencial, que un computador almacene datos. Incluso si el computador esta procesando datos al vuelo (es decir, los datos se introducen, se procesan, y los resultados se obtienen inmediatamente), el computador tiene que guardar temporalmente al menos aquellos datos con los que está trabajando en un momento dado. Así hay al menos, una función de almacenamiento de datos a corto plazo. Con igual importancia el computador lleva a cabo una función de almacenamiento a largo plazo. El computador almacena ficheros de datos para que se recuperen y actualicen en un futuro. El computador tiene que ser capaz de transferir datos en él mismo y el mundo exterior. Cuando se reciben o se llevan datos a un dispositivo que está directamente conectado con el computador, el proceso se conoce como entrada-salida (E/S), y este dispositivo recibe el nombre de periférico. El proceso de transferir datos a largas distancias, desde o hacia un dispositivo remoto, recibe el nombre de comunicación de datos. Finalmente, debe haber un control de estas tres funciones. Este control es ejercido por el (los) ente(s) que proporciona(n) al computador las instrucciones. Dentro del computador, una unidad de control gestiona los recursos del computador y dirige las prestaciones de sus partes funcionales en respuesta a estas instrucciones.ESTRUCTURALa estructura interna del computador mismo, que mostramos en su nivel más alto, consta de cuatro componentes principales: • Unidad de Procesamiento (CPU):, controla el funcionamiento del computador y lleva a cabo sus funciones de procesamiento de datos. Frecuentemente se le llama procesador.• Memoria Principal (MP): almacena datos.• Entrada/Salida (E/S): transfiere datos entre el computador y el entorno externo.• Sistema de Interconexión: es un mecanismo que proporciona la comunicación entre la CPU, la memoria principal y la Entrada/Salida.Puede que haya uno más de estos componentes. El componente más complejo es la CPU, sus principales componentes son: • Unidad de Control: controla el funcionamiento de la CPU y por tanto del computador.• Unidad Aritmético-Lógica: (ALU): lleva a cabo las funciones de procesamiento de datos del computador.• Registros: proporcionan almacenamiento interno a la CPU.• Interconexiones CPU: son mecanismos que proporcionan comunicación entre la unidad de control, la ALU y los registros.Finalmente, hay varias aproximaciones para la implementación de la unidad de control; una de las aproximaciones más comunes es la implementación microprogramada. Básicamente, una unidad de control microprogramada actúa ejecutando microinstrucciones que definen la funcionalidad de la unidad de control.

11.Cómo logra mejorar el rendimiento de la atención de las interrupciones en las rutinas de interrupción?Linux logra un buen rendimiento o puede atender numerosos eventos sin perder datos debido a que divide las rutinas de interrupción en mitad superior (lo urgente) y mitad inferior (lo postergable).12.Cómo administra Linux la memoria física, cuando las tareas le piden memoria? Por qué hay 3 zonas?Linux ofrece un conjunto de paginas físicas (marcos) cuando un proceso (tarea) solicita memoria (aunque la solicitud incluya un solo marco). Linux por una cuestión de compatibilidad administra tres zona de memoria: •DMA: cuando las direcciones no superan los 16 MB (para los viejos Intel 80x86)•Normal: cuando los direccionamiento van entre 16 y 896 MB.•Highmem: para direcciones mayores de 896 MB y en procesadores de 32 bits hasta 4 GB13.Cómo administra Linux la memoria del kernel?Las últimas versiones de Linux administra el espacio del kernel a través de franjas, que es un mecanismo que genera menos Fragmentación Interna que la descomposición binaria que se usaba antes. Estas franjas contienen cachés que guardan objetos del mismo tipo y pertenecen al kernel. Cuando un módulo del kernel solicita espacio para un nuevo objeto se trata de darle una franja con caché del mismo tipo que esté parcialmente ocupada, en caso de que no haya se le asigna o crea una franja vacía.14.A qué se les denomina regiones en memoria virtual de Linux?El concepto de memoria virtual tiene sentido para los espacios de direcciones de los procesos, por lo que la administración de sus direccionamientos es realizada por el kernel que mantiene estructuras diferentes según la región del proceso que intente acceder. Es decir las regiones tiene sentido lógico o para el proceso (área de código, de datos, heap o pila). Los algoritmos y la estructura que mantiene el kernel tratan de controlar esta administración particular.15.Cuál es el criterio del algoritmo de reemplazo de páginas en Linux?Linux utiliza paginación bajo demanda como criterio de carga de las páginas de un proceso en memoria principal. Los procesos tienen un límite en los marcos asignados, si el proceso sea excedido, Linux le ofrece un algoritmo de sustitución de páginas llamados de “segunda oportunidad”, semejante al algoritmos del reloj, que va anotando en un bit la nueva demanda de página y se comporta como FIFO en el sentido de intentar reemplazar la página más vieja, aunque revisa si fue demandada más de una vez con este bit. 16.A qué se le denomina sistema de archivos virtual en Linux? Qué ventajas tiene?Al igual que Unix, Linux considera archivos a muchos recursos (dispositivos, etc). Además de estas ventajas, Linux intenta reconocer muchos sistemas de archivos (cosa que Windows no). Esto lo consigue con el concepto de sistema de archivos virtual, considerando a los archivos como objetos. Le destina una capa superior de software para manejar estos objetos definiendo cuatro tipos principales: inodo, archivo, superbloque y entrada del directorio. La capa de estos objetos se comunica con el kernel, orientándolo respecto del tipo específico de archivos que se trate17.Cuál es la característica de ext2fs (el sistema de archivos de Linux)? Cómo asigna los bloques a los archivos?Ext2fs (sistema de archivos extendido versión 2) ha heredado el viejo sistema de archivos de Unix System V (excelente sistema de archivo que hacía muy buena administración del espacio del disco, ya que para archivos pequeños los punteros de los 10 primeros bloques estaban en el mismo inodo y si el archivo necesitaba más espacio, los punteros apuntaban a bloques de direcciones de los bloques de datos, en forma indirecta). Utiliza bloques de 1KB, aunque trata de asignar bloques contigüos en grupos que pertenezcan al mismo cilindro o a cilindros adyacentes (esto mejora el rendimiento de las operaciones de E/S). Administra los bloques libres con un mapa de bits (bit=1 es bloque libre) y trata de asignar el Byte completo (8bits con 1), 8 bloques libres es por defecto la unidad de asignación para los archivos, pero puede llevar a fragmentación Interna (asignados pero no usados). Recordar que como Unix, la asignación es indexada, por lo que no tendría que tener fragmentación externa (siempre puede asignar bloque libre). Ubica a los archivos en el mismo grupo de bloques del inodo del archivo. A su vez a los inodos de archivos los guarda en el mismo grupo del inodo directorio que los contiene. Y a los inodos directorio los trata de alojar en forma dispersa por todo el disco (entre todos los grupos de cilindros de bloques disponibles)18.Qué significa que un sistema de archivos use journaling o diario? Qué ventajas tiene?Casi todos los sistemas de archivos modernos usan la técnica de Registro, esto es escriben secuencialmente (registran) en el disco las operaciones que modifican el sistema de archivo (en lo que se llama el registro). Al conjunto de las operaciones que hace una tarea específica se le denomina transacción (porque debe ser efectuada sin interrupción lógica, como un solo paquete). Estas actualizaciones en el disco llevan tiempo porque tocan datos y metadatos (que normalmente están en bloques diferentes). Lo que se hace es devolver el control al proceso que hizo una llamada al sistema como Write (p. ej), inmediatamente que se escribió en el registro (para ganar paralelismo) y se la marca como commited (confirmada). Cuando haya tiempo (no aparezcan nuevas solicitudes de E/S), se aprovecha para guardar en sus verdaderos lugares (bloques) los datos y metadatos (en los inodos) las actualizaciones. Esto además de las ventajas de velocidad, minimiza los riesgos de pérdida de información por cortes de energía (se pierde la información de Mp). Ext2fs no tiene registro, pero ext3fs sí.19.Para qué sirve el sistema de archivos /proc?Llamado sistema de archivos de proceso, fue una herramienta inventada por SVR4 (de los lab Bell) como mecanismo para mejorar la depuración de procesos del kernel. Cada subdirectorio de este sistema de archivos se corresponde con un proceso activo. Linux mejora esta herramienta, agregando directorios adicionales y archivos de texto en el directorio raíz (sirven para llevar estadísticas del kernel y sus controladores (drivers) cargados). Lo bueno es que los programas de usuario, pueden acceder a esta información a través de estos archivos de texto. Un ejemplo de esto, es que ps (que es un comando que muestra el estado de los procesos), antes se implementaba como un proceso privilegiado, porque debía sacar información del kernel, ahora con /proc, lo puede hacer a nivel de usuario. En Linux, los inodos se identifican con 32 bits, mientras que los procesos con 16. Así que la identificación de inodo se hace con los 16 bits más significativos que identifican al proceso y los otros 16, para definir qué información del proceso se guarda. Cuando PID es cero, ese inodo contiene información global del sistema: memoria libre, valores de rendimiento y controladores en ejecución. 20.Qué diferencia hay entre los dispositivos de bloque y los de caracteres?En los de bloque (permiten almacenar información) se puede acceder en forma directa, porque se identifican los bloques con un número único. Son ejemplo: los discos (duros, diskettes, CD, etc) y las memorias flash. Pueden usarse con y sin sistema de archivos. Los administradores de bases de datos usan los discos sin sistemas de archivos comunes (les da mejor rendimiento y control). Los de caracteres (sirven para comunicación, no para almacenamiento), la información llega o sale del computador en forma de tren de binarios (en serie). No se puede identificar grupos ni hacer accesos directos.21.Qué es una señal para Linux?, para que sirven? Si un proceso está en modo kernel, usa señales?Las señales, como las rutinas de interrupción, son rutinas o programas que se prevé que se ejecutarán cuando se las solicite. Al igual que en Unix, Linux usa las señales como mecanismo de notificación de eventos entre procesos o entre el SO y los procesos. El SO usa un campo del PCB para anotarle el num de señal que tendrá que ejecutar (obligatoriamente o no), cuando le toque nuevamente ejecución. Tiene como limitación (al contrario que las interrupciones) que sólo se puede pedir que se ejecute una por vez (no hay colas de señales), no se acumulan, se sobreescriben los num de señales en el campo del PCB. Si una tarea está en modo kernel, no espera señales para ser notificado de un evento, sino que cambia de estado (bloqueándose) y esperando en cola a ese suceso. Esto permite que muchos procesos que esperan en cola, se activen cuando éste ocurra. Las señales son personales (sirven para un solo proceso), los semáforos ofrecen notificación (signal) y bloqueo a varios procesos. Además Linux ofrece tratar a muchos semáforos como un solo paquete atómico (semáforos múltiples).22.Que es un pipe para Linux?Linux hereda de Unix los pipes (archivos temporales del tipo cola o FIFO) que sirven para comunicar 2 o más procesos a través de este archivo. Tiene la ventaja que la sincronización y comunicación está facilitada por el SO (no permite que un proceso productor deje más datos si el pipe está lleno, o que saque un consumidor si está vacío), bloqueando los procesos, si es necesario. Además cuida la exclusión mutua (sólo un proceso por vez permanece en el pipe)23.Qué es autenticación y control de acceso en Linux?Autenticación es la norma que tienen muchos SO para exigir que el acceso sea hecho por personas autorizadas. En la autenticación se exige nombre de usuario y contraseña (datos que se guardan encriptados). Control de acceso se le denomina al mecanismo que se adjunta a cada objeto que se desea proteger de accesos no autorizados. En realidad es muy sencillo, se lo implementa con 9 bits (3 para el dueño, 3 para el grupo de amigos del dueño y los 3 para el resto del mundo), cada terna de bits identifica si puede leer, escribir o ejecutar. Si el bit está en 1, entonces puede hacerlo.Espero les sirva! Puntos Podes visitar http://www.taringa.net/posts/linux/13350414/Linux-Parte-1-_10-Preguntas-Interesantes-de-saber-_.html