Red de conocimiento informático - Aprendizaje de código fuente - Experiencias del informe experimental del sistema operativo

Experiencias del informe experimental del sistema operativo

La siguiente es mi experiencia con el informe del experimento del sistema operativo compilado para todos. Le invitamos a leerlo. Para obtener más contenido relacionado, preste atención a la columna de experiencia. Experiencia en el informe del experimento del sistema operativo

El diseño de cada curso me permite aprender cosas que son imposibles de aprender en el aula habitual. Por eso aprecio cada oportunidad de diseñar cursos. No necesariamente cuán perfecto será el diseño de mi curso, pero siempre estoy muy dedicado a investigar y aprender. Entonces, durante estas dos semanas de clases, me quedé despierto dos noches enteras y mi reloj biológico se vio gravemente alterado. Pero me emociono cada vez que completo una tarea. Al principio, la tarea era solo una tarea, pero luego, la tarea se convirtió en mi propio trabajo. En términos generales, el diseño de mi curso cumple con los requisitos básicos del profesor. En resumen, tengo la siguiente experiencia.

1. Internet es realmente poderoso y será un asistente muy eficiente cuando se utilice en el aprendizaje. Casi toda la información se puede encontrar en línea. Desde la instalación de máquinas virtuales Linux, hasta varias operaciones de comando básicas de Linux, pasando por las funciones gráficas de gtk y, finalmente, hasta el análisis detallado del sistema de archivos. Todos estos se pueden encontrar en línea. Debido a esto, después de diseñar todo el curso, navegué por más de 100 páginas web relacionadas (estadísticas incompletas). Por supuesto, las cosas en Internet son muy confusas y complicadas, y es necesario poder aprender a filtrarlas.

Si no puedes decidir qué está bien o mal, una forma muy sencilla es intentarlo. Tome el segundo experimento como ejemplo. Hay muchas operaciones pequeñas al compilar el kernel. Si una de estas pequeñas operaciones falla, la compilación puede fallar y esto lleva mucho tiempo. La máquina virtual que uso debe compilarse una vez. Cerca de 3 horas. Así que tenga mucho cuidado, intente cometer el menor número de errores posible y ahorre tiempo. Encuentre algunos materiales de referencia más, compárelos entre sí y estudie lentamente, y finalmente podrá obtener el doble de resultado con la mitad de esfuerzo.

3. Atrévete a afrontar problemas difíciles Cuanto más difícil sea el problema, más reto deberás tener. De esta forma, se puede llegar al estado de olvido de comer y dormir. Por supuesto, no es recomendable quedarse despierto hasta tarde. Después de todo, sólo con energía podemos librar una batalla prolongada. Pero debes estar en estado de ánimo al diseñar tu curso y ser capaz de pensar en el problema que quieres resolver mientras comes, duermes y vas al baño. De esta manera, será difícil incluso si no lo haces. No lo logré.

4. Es mejor tener el hábito de grabar durante el proceso de diseño del curso, de modo que al escribir el informe experimental, pueda recordar más completamente los diversos problemas encontrados durante el proceso. Por ejemplo, encontré un problema de falla de segmentación que nunca antes había encontrado y no sabía por dónde empezar. Después de revisar mucha información, tengo cierto conocimiento de los fallos de segmento y puedo utilizar los métodos correspondientes para resolverlos.

Los siguientes tipos de prácticas en programación pueden conducir fácilmente a errores de segmentación, que son causados ​​básicamente por el uso incorrecto de punteros

1) Acceso a áreas de datos del sistema, especialmente a direcciones de memoria protegidas por el sistema. Al escribir datos, el método más común es dar una dirección de puntero 0

2) Memoria fuera de límites (matriz fuera de límites, tipos de variables inconsistentes, etc.) accediendo a un área de memoria que no pertenece usted

3) Otros

Por ejemplo:

lt; 1gt; Recuerde inicializar el puntero después de definirlo y recuerde determinar si es nulo cuando usándolo.

lt; 2gt; Cuando se usa una matriz Si ​​está inicializado, si el subíndice de la matriz está fuera de los límites, si el elemento de la matriz existe, etc.

 lt;

Solución

1. Utilice gdb para encontrar fallas de segmentación paso a paso:

2. Analice el archivo principal

3. Inicie la depuración cuando se produzca un error de segmentación:

4 .Utilice backtrace y objdump para el análisis:

En resumen, trate el curso Diseñe como su propio trabajo, no como una tarea. Mi experiencia en el aprendizaje de sistemas operativos

En un abrir y cerrar de ojos, el curso semestral de sistemas operativos de computadora llega a su fin.

Durante este semestre, gracias a la cuidadosa enseñanza del profesor, tengo un profundo conocimiento de algunos principios y procesos operativos específicos de los sistemas operativos de las computadoras.

Antes de aprender el sistema operativo, solo creía superficialmente que el sistema operativo simplemente hablaba de algunas operaciones y aplicaciones de la computadora, y no entendía el proceso operativo específico ni la practicidad. A través del estudio de este semestre, aprendí que el sistema operativo (Sistema Operativo, OS para abreviar) administra todos los recursos de hardware del sistema informático, incluidos los recursos de software y los recursos de datos, controla la operación del programa y brinda soporte para otros; software de aplicación, etc., para maximizar el uso de todos los recursos del sistema informático y proporcionar a los usuarios una interfaz de servicio conveniente, eficaz y amigable.

Después de un semestre de estudio, también aprendí que un sistema operativo de computadora es un software de sistema de múltiples capas instalado en el hardware de la computadora. No solo mejora las funciones del sistema, sino que también oculta los detalles del mismo. operación de hardware. Implementa múltiples niveles de abstracción para las operaciones de hardware de la computadora. Algunos principios de los sistemas operativos también se aplican en la vida. La siguiente es mi experiencia al conectar algunos principios de los sistemas operativos con la vida a lo largo de este semestre de estudio:

1 Problemas de producción y consumo

En el proceso de operación real del sistema operativo, a menudo nos encontramos con el siguiente escenario: un determinado módulo es responsable de generar datos y estos datos son procesados ​​por otro módulo (el módulo aquí es en un sentido amplio y puede ser una clase, función, hilo, proceso, etc.). El módulo que genera datos se llama productor; el módulo que procesa datos se llama consumidor.

La mera abstracción de productores y consumidores no es suficiente para resolver el problema de los productores y consumidores. Este problema también requiere un amortiguador entre el productor y el consumidor como intermediario. El productor coloca datos en el búfer y el consumidor los saca del búfer.

Para entender este problema, tomemos un ejemplo de envío de una carta. Supongamos que quieres enviar una carta normal, el proceso general es el siguiente:

1. ¿Escribes la carta? Equivale a los datos de fabricación del fabricante.

2. ¿poner la carta en el buzón? Cuando el productor pone los datos en el búfer

3. ¿El cartero saca la carta del buzón? ¿Es equivalente a que el consumidor saque los datos del búfer? p>

4. El cartero lleva la carta a la oficina de correos para su procesamiento. ¿Procesamiento correspondiente? Equivalente al procesamiento de datos del consumidor.

2. ¿Algoritmo bancario para evitar el punto muerto?

¿Se produce un punto muerto? cuando se están ejecutando dos o más procesos, un fenómeno de espera mutua provocado por la competencia por los recursos, sin fuerza externa, no podrán avanzar. En este momento, se dice que el sistema está en un estado de punto muerto o que se ha producido un punto muerto en el sistema. Estos procesos que siempre están esperando entre sí se denominan procesos de punto muerto. Dado que la ocupación de recursos es mutuamente excluyente, cuando un proceso solicita recursos, al proceso correspondiente nunca se le asignarán los recursos necesarios y no podrá continuar ejecutándose sin asistencia externa. Esto crea un fenómeno especial llamado punto muerto. Creo que el punto muerto mencionado por el sistema operativo es como dos personas cruzando un puente de una sola tabla, dos autos cruzando un puente de un solo sentido y otros fenómenos de bloqueo. La razón es que los recursos compartidos, es decir, las carreteras.

Para mejorar la utilización de los recursos del sistema y evitar el punto muerto, no limitamos estrictamente la existencia de las condiciones necesarias para el punto muerto, sino que utilizamos algún método para evitar que el sistema entre en un estado inseguro durante el proceso. asignación dinámica de recursos, evitando así la eventual aparición de un punto muerto. Sin embargo, el algoritmo para evitar puntos muertos más representativo es el algoritmo bancario de Dijkstra. En este método, el estado del sistema se divide en un estado seguro y un estado inseguro. Siempre que el sistema pueda estar siempre en un estado seguro, se puede evitar el punto muerto. La idea básica del algoritmo bancario es determinar si el sistema es seguro antes de asignar recursos; si es seguro, asignar recursos;

Podemos pensar en el sistema operativo como un banquero. Los recursos administrados por el sistema operativo son equivalentes a los fondos administrados por el banquero. La solicitud del proceso para asignar recursos al sistema operativo es equivalente a la del usuario. préstamo al banquero.

Para garantizar la seguridad de los fondos, los banqueros estipulan:

(1) Cuando la demanda máxima de fondos de un cliente no excede los fondos existentes del banquero, el cliente puede ser aceptado

; (2) Los clientes pueden pedir prestado a plazos, pero el número total de préstamos no puede exceder la demanda máxima.

(3) Cuando los fondos existentes del banquero no pueden cubrir la cantidad de préstamos que el cliente aún necesita, el préstamo. al cliente El pago se puede diferir, pero el cliente siempre puede obtener el préstamo dentro de un tiempo limitado.

(4) Cuando el cliente obtenga todos los fondos que necesita, definitivamente podrá devolver todo el dinero; fondos en un tiempo limitado.

Además, también podemos pensar que el sistema operativo construye una casa. Los recursos del sistema operativo se consideran la cantidad de grúas utilizadas para construir la casa. asignar recursos es equivalente al número de grúas solicitadas al construir la casa. Número de máquinas. Para garantizar el buen avance del proyecto, el proceso de operación es el siguiente:

Cuando la demanda máxima de grúas para una casa no excede las grúas existentes para la construcción de la casa, la construcción de la casa puede ser aceptado;

La casa a construir puede solicitar grúas varias veces, pero el número total de grúas solicitadas no puede exceder la demanda máxima

Cuando el número de grúas existente; no puede satisfacer las necesidades de una determinada casa. La cantidad de grúas necesarias para la casa se puede diferir, pero la casa siempre puede obtener un préstamo por un tiempo limitado.

Cuando la casa que se está construyendo obtiene todas las grúas; necesario Finalmente, todas las grúas deben devolverse dentro de un tiempo limitado.

Problema de sincronización de procesos

Después de que un proceso alcanza un cierto punto, a menos que otros procesos hayan completado ciertas operaciones, debe detenerse y esperar a que otro proceso se lo proporcione antes de recibir el mensaje. , el proceso está en estado de espera. Después de recibir el mensaje, se despierta y está listo. Esto es sincronización de procesos. También podemos encontrar ejemplos correspondientes en la vida:

Por ejemplo, un conductor de automóvil y un revisor. El conductor del automóvil es responsable de conducir, entrar a la estación, abrir la puerta, cerrar la puerta y entrar a la estación;

El conductor es responsable de después de vender boletos y entrar y salir de la estación, observar la puerta y enviar información de apertura y cierre de puerta al conductor en condiciones normales, actúan de forma independiente, siendo el conductor el que conduce y el conductor; el conductor que vende boletos; ambas partes deben sincronizar sus procesos al entrar y salir de la estación.

Resumen:

En resumen, algunos de los principios de los sistemas operativos se pueden encontrar en los ejemplos correspondientes de la vida. Combinar ejemplos de la vida puede convertir la abstracción en concreción y comprenderemos sus principios y procesos operativos con mayor claridad. Creo que a través de nuestro aprendizaje continuo y combinado con los problemas prácticos de la vida, aprenderemos mejor el sistema operativo.

Lo recomiendo mucho