Preguntas examen Sistemas Operativos
Enviado por Jose Maria Azcuenaga • 21 de Diciembre de 2015 • Examen • 3.075 Palabras (13 Páginas) • 510 Visitas
•Llamada al sistema semget(). Crea y accede a 1 conjunto de semáforos. Crea 1 lista de semáforos(tb se habal de Conj.. de semáforos) o devuelve un identificador (ID) a una lista si esta ya existia. Sintaxis: int semget (key, nsem, semflg) La forma de obtener un ID al conjunto de semáforos es mediante una clave que sera igual para todos los procesos que trabajen con el mismo conjunto. El ID que devuelve semget si utiliza la tabla de semáforos para localizar una determinada lista.|| si el bit IPC_CREAT del parámetro semflg esta activo, el conjunto se creara a nos ser que este existiera ya. Tb se utiliza semflg para indicar los permisos de acceso al conjunto de semáforos para el propietario, grupo y otros. La lista estara formada por nsem semáforos numerados a partir de 0. el valor que devuelve es de tipo entero y corresponde al identificador del conjunto de semáforos en caso de error, devuelve -1.
•¿Es cierto que la llamada al sistema semget, en unix permite crear hasta un maximo de 3 semaforos? No, permite crear más de 3 semaforos semget (key, nsem,semflag)
•Llamada al sistema semop(). Manipula los valores de un conjunto de semáforos.|| sintaxis: int semop(semid, semops, nsemops)|| Semop()se usa para realizar automáticamente una lista de operaciones de semáforos en el conjunto de semaf. Asociados con el identif. del conj. de semaf. Semid, semops es un puntero a la lista de estructuras de operación de semafor. Nsemops es el tamaño de la lista. El valor de tipo entero que devuelve la funcion es el valor del ultimo semáforo operado en el conjunto antes de hacer la operación.
•¿Es cierto que la llamada al sistema “semop(…)” me permite realizar una operación wait y otra signal sobre semáforos qe se encuentran en distintos conjuntos de forma indivisible? La llamada la sistema semop se usa para realizar automáticamente una lista de operaciones de semáforo. Las operaciones se realizan sobre semáforos q pertenecen a la misma lista o conjunto(si es en el mismo conjunto es cierta la afirmació,n si es en diferntes es falsa).
•Llamada al sistema shmget(). Crea una nueva region de memoria compartida o devuelve una existente.|| sintaxis: int shmget(key, size, shmflg) Donde size es el número de bytes de la region. El kernel busca en la tabla de memoria compartida por la clave (key) dada. La clave sera un valor entero único para todos los procesos que comparten la misma region de memoria. Si existe una entrada, y los permisos lo permiten, devuelve un identificador a la region. Si no lo encuentra y el usuario habia estrablecido el banderin IPC_CREAT en shmflg, el kernel creará una nueva región. Otros banderines que se pueden establecer en shmflg son los permisos a la entrada.En caso de error devuelve -1
• “shmget (100,64,0777| IPC_CREAT)”¿Me permite crear un espacio de memoria compartida de 64bytes? Si 64 indica tamañoen bytes, 0777 el permiso, y pccreat es el banderin
•Llamada fork() La llamada al sistema fork() crea un nuevo proceso en unix. Esta llamada hace que el proceso que se ejecute se divida en dos procesos. Al proceso sque ejecuta fork() se le conoce como proceso padre y al nuevo proceso creado se le llama proceso hijo.||sintaxis : int fork();
•¿Es cierto que la llamada al sistema fork() en unix crea un proceso nuevo q comparte la misma m. virtual q proceso
padre? Tras ejecutarse esta llamada al sistema, los dos procesos tendran copias identicas de su contexto a nivel de usuario. La unica diferencia sera que el valor entero que devuelve fork() para el proceso padre es el PID del proceso hijo mientras que para el proceso hijo es =. En caso de error devuelve -1. Ambos procesos son copias identicas de un contexto a nivel usuasrio. Pero se encuentran en zonas diferentes de memoria. Es cierto que hay una zona de memoria compartida en la memoria virtual pero lo que ocurre es que cada proceso cree que esta region comparticda esta en su espacio de direcciones. Por tanto , no comparten la misma memoria virtual.
•Todos los archivos abiertos antes de una llamada al sistema fork() en unix con cerrados automáticamente justo después de ejecutarse dicha llamada ¿Es cierto?Falso, |ambos procesos compartiran los archivos que el proceso padre tenia abierto hasta qel momento de la llamada al sistema|||esta llamada al sistema lo k hace es duplicar el codigo del programa, el proceso hijo comparte todos los archivos q el padre tenia abierto , lo unico k pasa es k dspues de la llamda, al duplicarse el código tendra 2 punteros apuntando al mismo archivo. Los archivos se cerraran cuando en el codigo aprarzca la orden correspondient.
•¿Es cierto que el Conj. de trabajo es un método que se utiliza para calcular el numero de paginas que un proceso tiene en memoria principal? No, pq el conjunto de trabaj de un proceso es un cto de pag q un proceso ha hecho referencia recientemente. Por tanto, el conjunto de trabajo si te dice el numero que tienes en MP, pero no es un metodo como tal.
•¿Es cierto que el conjunto de trabajo es un metodo para localizar un archivo en la m. virtual?No, pq solo nos puede decir si esta, pero no donde
•¿Es cierto que el conjunto de trabajo es un método de traducción de direcciones?No, solo nos indica si esta la direccion, no donde.
•¿Qué puede ser mas conveniente, un disco con muxos sectores/pista y pocos cilindros o bien un disco con pocos sectores/pista y muchos cilindros? El tiempo de búsqueda es el q mas tarda, por lo q convendrá +sect/pista y – cilindros.
•Basicamente, podemos dividir a los usuarios de los servidios de los ssoo en 2 amplias clases, indike cuales son esas 2 clases y la forma q obtienen los servicios del so. Usuarios del Lenguaje de Ordenes (ejecutan las ordenes directamente desde el prompt). Usuarios de las llamadas al sistema (ejecutan la orden desde sus programas)
•a) Representación de los procesos en el sistema: el descriptor de proceso
Estructura de datos q contiene la información sobre el estado de la ejecución de un prceso. b) Indicar los modulos del S.O. q intervienen tr4as una interrupcion de Reloj, explicando lo q hace cada uno de ellos. FLIH(llama a la rutina de servicio y la ejecuta) Despachados y Schedules (en caso de q sea necesario)
•Si un proceso en modo usuario intenta ejecutar una instrucción privilegiada, se conmuta a modo supervisor y se ejecuta la instrucción ¿Es cierto? No, pq si esto ocurriera asi el sistema no tendria ninguna proteccion, ya que si el proceso en modo usuario decidiera apagar el sistema, el resto de usuario sufriria las consecuencias, este tipo de instrucciones privilegiadas solo las puede hacer el administrador del sistema. Si cualquier proceso en modo usuario pudiera ejecuatarlos y el sistema no lo evitara, esto seria un sistema si proteccion alguna.
...