西南交通大学【操作系统实验1】

2024-06-11 17:52

本文主要是介绍西南交通大学【操作系统实验1】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实验目的

  1. 通过本实验了解Linux系统的组织和行为,观察各种存储系统状态信息的内核变量
  2. 熟悉这些结构和信息

实验内容

  1. 理解Linux操作系统以及./proc文件
  2. 熟悉codeblocks,学习Linux下c程序调试技术
  3. 根据给定的程序观察cpuinfo/version/stat/uptime
  4. 编程实现对meminfo/loadavg/interrupts/filesystems的观测

实验环境

Ubuntu 12.04 LTS

Device name: oslinux-virtual-machine

Memory: 1001.2MiB

Processor: 13th Gen Intel Core i5-13500HX

Graphics: Unknown

OS type: 32-bit

Disk: 20.3GB

实验步骤

  1. 1. 使用gcc对test1.c文件进行编译得到执行文件
  2. 2. 运行执行文件得到test1.c的运行结果
  3. 3. 打开codeblocks创建项目并创建文件
  4. 4. 通过编程实现对meminfo/loadavg/interrupts/filesystems的观测
  5. 5. 对2和4的结果进行解读

实验结果

结果展示

test1.c文件结果

编程实现观测结果

              

结果解读

test1.c文件

1. CPU类型及型号: 13th Gen Intel(R) Core(TM) i5-13500HX,由英特尔公司制造。它是第13代Intel Core系列中的一款型号为i5-13500HX的处理器。这意味着它是一款高性能的处理器,适用于各种计算任务。

2. 内核版本: Linux version 3.2.0-29-generic-pae:这是系统中正在运行的Linux内核的版本号。

3. (gcc version 4.6.3(ubuntu/Linaro 4.6.3-1ubuntu5)):这是关于系统中安装的GNU编译器套件(GCC)的版本信息。GCC是一种广泛使用的编译器,用于编译C、C++等编程语言。这里显示的版本是4.6.3,是由Ubuntu和Linaro进行了一些定制。

4. 46-ubuntu SMP Fri Jul 27 17:25:43 UTC 2012:这是关于Linux内核的编译信息,指示了内核的构建时间和日期。"SMP"表示对称多处理,表明内核支持多核处理器系统。 "Fri Jul 27 17:25:43 UTC 2012" 是内核构建的日期和时间信息。

编程实现观测结果

1. Meminfo(内存信息)(部分):

   - MemTotal:系统总内存量,以KB为单位。

   - MemFree:系统空闲内存量,以KB为单位。

   - Buffers:用于缓冲的内存量,以KB为单位。

   - Cached:用于缓存的内存量,以KB为单位。

   - SwapTotal:交换空间总量,以KB为单位。

   - SwapFree:交换空间空闲量,以KB为单位。

   - SwapCached:用于缓存的交换空间量,以KB为单位。

2. Loadavg(负载平均值):

   - 负载平均值由三个数字组成,分别表示过去1分钟、5分钟和15分钟内的平均负载。

   - 一般来说,负载平均值小于CPU核心数量是比较正常的,超过这个值可能表示系统资源不足。

3. Interrupts(中断):

   - 这个输出结果中列出了每个中断向量(IRQ)对应的中断计数。

   - 通过观察中断计数,可以了解系统中各种设备的活动情况,以及是否存在某些设备产生过多的中断。

4. Filesystems(文件系统):

   - 这个文件列出了系统中已挂载的文件系统的详细信息。

   - 对于每个文件系统,可以查看其类型、挂载点、总空间、已使用空间和可用空间等信息。

6.核心代码

#include <stdio.h>#include <string.h>#include <time.h>#include <stdlib.h>// observing meminfovoid meminfo(){FILE *fp = NULL;char string[1024];fp = fopen("/proc/meminfo", "r");if (fp == NULL) {printf("open /proc/meminfo failed\n");return;}while (fgets(string, sizeof(string), fp)) {printf("%s", string);}fclose(fp);}// observing loadavgvoid loadavg(){FILE *fp = NULL;char string[1024];fp = fopen("/proc/loadavg", "r");if (fp == NULL) {printf("open /proc/loadavg failed\n");return;}while (fgets(string, sizeof(string), fp)) {printf("%s", string);}fclose(fp);}// observing interruptsvoid interrupts(){FILE *fp = NULL;char string[1024];fp = fopen("/proc/interrupts", "r");if (fp == NULL) {printf("open /proc/interrupts failed\n");return;}while (fgets(string, sizeof(string), fp)) {printf("%s", string);}fclose(fp);}// observing filesystemsvoid filesystems(){FILE *fp = NULL;char string[1024];fp = fopen("/proc/filesystems", "r");if (fp == NULL) {printf("open /proc/filesystems failed\n");return;}while (fgets(string, sizeof(string), fp)) {printf("%s", string);}}int main(int argc, char *argv[]) {meminfo();loadavg();interrupts();filesystems();return 0;}

这篇关于西南交通大学【操作系统实验1】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1051872

相关文章

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

智能交通(二)——Spinger特刊推荐

特刊征稿 01  期刊名称: Autonomous Intelligent Systems  特刊名称: Understanding the Policy Shift  with the Digital Twins in Smart  Transportation and Mobility 截止时间: 开放提交:2024年1月20日 提交截止日

Linux操作系统 初识

在认识操作系统之前,我们首先来了解一下计算机的发展: 计算机的发展 世界上第一台计算机名叫埃尼阿克,诞生在1945年2月14日,用于军事用途。 后来因为计算机的优势和潜力巨大,计算机开始飞速发展,并产生了一个当时一直有效的定律:摩尔定律--当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。 那么相应的,计算机就会变得越来越快,越来越小型化。

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

1、简述linux操作系统启动流程

1、简述linux操作系统启动流程 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。开机时将ROM中的指令映射到RAM的低地址空间,CPU读取到这些指令,硬件的健康状况进行检查,按照BIOS中设置的启

61.以太网数据回环实验(4)以太网数据收发器发送模块

(1)状态转移图: (2)IP数据包格式: (3)UDP数据包格式: (4)以太网发送模块代码: module udp_tx(input wire gmii_txc ,input wire reset_n ,input wire tx_start_en , //以太网开始发送信

操作系统是怎么为不同的程序分配所需的内存空间的

操作系统为不同的程序分配内存空间的过程涉及多个关键步骤,确保每个程序都有其所需的内存资源,同时避免程序之间的冲突。以下是操作系统如何为程序分配内存空间的详细过程: 1. 内存管理的基础概念 虚拟内存:现代操作系统使用虚拟内存机制来为程序提供隔离的内存空间。每个程序运行在其独立的虚拟地址空间中,这使得程序间的内存互不干扰。物理内存:实际的 RAM(随机存取存储器),由操作系统和硬件共同管理。虚拟

操作系统安全保护

操作系统安全概述 概念:满足安全策略要求,具有响应安全机制及安全功符合特定安全标准,在一定约束条件下 能抵御常见网络安全威胁,保障自身安全运行及资源安全 安全等级:根据安全功能和安全保障要求分为 用户自主保护级  系统审计保护级 安全标记保护级 结构化保护级 访问验证保护级 操作系统作用: 负责计算系统的资源管理、支撑和控制各种应用程序运行,为用户提供计算机系统管理接口 是构成网络信息

LTspice模拟CCM和DCM模式的BUCK电路实验及参数计算

关于BUCK电路的原理可以参考硬件工程师炼成之路写的《 手撕Buck!Buck公式推导过程》.实验内容是将12V~5V的Buck电路仿真,要求纹波电压小于15mv. CCM和DCM的区别: CCM:在一个开关周期内,电感电流从不会到0. DCM:在开关周期内,电感电流总会到0. CCM模式Buck电路仿真: 在用LTspice模拟CCM电路时,MOS管驱动信号频率为100Khz,负载为10R(可自