procesos Flashcards

(40 cards)

1
Q

¿Qué es un programa en términos de la transición de un programa a proceso?

A

Un programa es un archivo que contiene instrucciones de máquina, dirección de entrada, datos, símbolos, tablas de realocación y bibliotecas necesarias para ejecutar el proceso.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué hace el compilador?

A

Compila el código fuente en una secuencia de instrucciones de máquina.
Guarda en disco esa secuencia junto con datos y metadata del programa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Cuál es la fase de preprocesamiento?

A

El preprocesador modifica el código de fuente original de un programa escrito en C de acuerdo a las directivas que comienzan con un caracter (#).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué genera el compilador en la fase de compilación?

A

Un archivo de texto .s que contiene un programa en lenguaje assembly.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Cuál es el propósito de la fase de ensamblaje en la compilación?

A

“El ensamblador convierte el archivo .s en instrucciones de máquina y lo guarda en un archivo de objeto con extensión .o.”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué hace el linker en la fase de link edición?

A

“El linker enlaza los archivos objeto en un único archivo binario ejecutable y también enlaza las bibliotecas estáticas y referencias simbólicas a bibliotecas compartidas.”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Qué es un archivo reubicable?

A

Un tipo de archivo que puede ser movido o reubicado en diferentes áreas de la memoria sin afectar su ejecución o funcionamiento.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Qué es ELF?

A

Executable and Linking Format, es el formato de archivo para ejecutables en Linux.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué información contiene un archivo ejecutable ELF?

A

Un archivo ELF contiene instrucciones de máquina, la dirección de entrada del programa, datos para inicializar variables, tablas de símbolos, bibliotecas compartidas y más información necesaria para crear un proceso en memoria.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué información puede mostrar el comando readelf?

A

Puede mostrar la sección de encabezado, tabla de programa, encabezado ELF y tabla de realocación.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué es un proceso?

A

La ejecución de un programa de aplicación con derechos restringidos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Qué incluye un proceso?

A

Archivos abiertos
Señales pendientes
Datos internos del kernel
Estado completo del procesador
Espacio de direcciones de memoria
Uno o más hilos de ejecución

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué contiene cada Thread?

A
  • Un único contador de programa
  • Un Stack
  • Un Conjunto de Registros
  • Una sección de datos globales
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Qué es la virtualización de memoria?

A

Una abstracción por la cual la memoria física puede ser compartida por diversos procesos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Qué es la virtualización de procesamiento?

A

“La virtualización de procesamiento es la ilusión de que existe un único procesador para cada programa, aunque en realidad puede haber múltiples procesadores compartidos entre varios procesos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿De qué se encarga el Kernel?

A
  1. Cargar instrucciones y Datos de un programa ejecutable en memoria.
  2. Crear el Stack y el Heap
  3. Transferir el Control al programa
  4. Proteger al SO y al Programa
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

¿Qué hace el Loader?

A

Usa el archivo ELF para armar el espacio de direcciones del proceso.

18
Q

¿Cuáles son los segmentos de memoria de un proceso en Linux?

A
  • Text: Instrucciones del Programa
  • Data: Variables Globales
  • Heap: Memoria Dinámica Alocable
  • Stack: Variables Locales y traza de llamadas
19
Q

¿Qué se traduce en la traducción de direcciones?¿Y quién lo hace?

A

Una Dirección Virtual emitida por la CPU se traduce en una Dirección Física de memoria. Este mapeo se realiza por hardware, más específicamente por Memory Management Unit (MMU).

20
Q

¿Qué hace la system call brk()?

A

Incrementa el break del programa, permitiendo al proceso acceder a la nueva área reservada de memoria.

21
Q

¿Qué diferencia hay entre brk() y malloc()?

A

brk() es una system call y opera con bloques grandes y malloc() se implementa en espacio de usuario utilizando brk().

22
Q

¿Cuáles son los estados de un proceso?

A
  • Corriendo
  • Listo
  • Bloqueado
23
Q

¿Qué significa que el estado de un proceso sea Corriendo?

A

El proceso se encuentra corriendo en un procesador. Está ejecutando instrucciones.

24
Q

¿Qué significa que el estado de un proceso sea Listo?

A

El proceso está listo para correr pero por algún motivo el SO ha decidido no ejecutarlo por el momento.

25
¿Qué significa que el estado de un proceso sea Bloqueado?
El proceso ha ejecutado algún tipo de operación que hace que éste no esté listo para ejecutarse hasta que algún evento suceda.
26
¿Qué es el contexto de un proceso?
La información necesaria para describir completamente el estado de un proceso.
27
¿Qué incluye el contexto de un proceso?
* User-level context * Register context * System-level context
28
¿Qué es el user level context?
Consiste en las secciones que conforman el espacio de direcciones virtual del proceso 1. Text 2. Data 3. Stack 4. Heap
29
¿Qué es el register context?
Representa el estado del CPU, es decir, los registros del CPU Eg. x86 - Program Counter Register - Processor Status Register - Stack Pointer Register - General Purpose Registers
30
¿Qué es el System-level context?
Es el conjunto de estructuras internas del sistema operativo que representan y gestionan los procesos en ejecución, como la Process Table Entry, el Kernel Stack y la configuración de memoria del proceso.
31
¿Qué es la Process Table Entry (PTE)?
Es la estructura que representa a cada proceso dentro del sistema operativo, también conocida como Process Control Block (PCB).
32
¿Qué tipo de información puede contener una Process Table Entry?
- Identificación: cada proceso tiene un identificador único o process ID (PID) y además perteneces a un determinado grupo de procesos. - Ubicación del mapa de direcciones del Kernel del u area del proceso. - Estado actual del proceso - Un puntero hacia el siguiente proceso en el planificador y al anterior. - Prioridad - Información para el manejo de señales. - Información para la administración de memoria.
33
¿Por qué es importante la Process Table Entry?
"Porque contiene toda la información relevante que el sistema operativo necesita para gestionar y planificar un proceso."
34
¿Qué hace la configuración de memoria de un proceso?
Define el mapeo entre memoria virtual y memoria física, usualmente a través de estructuras como las Page Tables.
35
¿Qué es el Kernel Stack?
"Es un stack exclusivo del kernel donde se guardan los stack frames de funciones llamadas dentro del kernel."
36
¿Por qué el kernel no puede usar el stack del espacio de usuario?
"Porque no es seguro ni confiable: escribir en user space puede corromper el estado del usuario o revelar información sensible."
37
¿Dónde se encuentra el Kernel Stack?
En la zona de memoria del kernel, protegida del espacio de usuario.
38
¿Por qué hay un Kernel Stack por proceso y no uno global?
Porque cada proceso “dormido” podía estar haciendo cosas completamente diferentes en el espacio Kernel antes de dormirse.
39
¿Qué ocurre durante un context-switch en general?
- Se restauran los registros del proceso entrante (EAX, EBX, etc.) - Se cambia toda la zona de usuario por la del proceso entrante (stack, heap, text, data) - No se modifica la memoria del Kernel, porque el Kernel es común y compartido a todos los procesos. Pero: - Se apunta el stack pointer al kernel stack del proceso entrante
40
¿Qué es la u-area?
Era una estructura por proceso usada en sistemas antiguos (UNIX Version 6) para almacenar información específica de cada proceso, como descriptores de archivos abiertos, registros en modo usuario y manejo de señales.