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

news2024/11/19 11:26:02

实验目的

  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 meminfo

void 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 loadavg

void 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 interrupts

void 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 filesystems

void 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;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1811617.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

泛微证券行业数据中心方案:打造多样化的数据收集、汇总、分析、决策一体化报表

证券企业在日常办公、业务开展时&#xff0c;涉及了诸多数据需求&#xff0c;而且数据来源于多部门、多个系统。需要对数据获取、汇总、展现进行高效、可视化的操作&#xff0c;高效利用数据价值&#xff0c;助力企业运营更高效、风险更可控。 泛微基于证券行业数字经营分析的需…

【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt窗口 | 对话框 | 创建模态及非模态对话框 文章编号&#xff1a;Qt 学…

12个Console命令,让js调试更简单

Console 对象用于 JavaScript 调试。JavaScript 原生中默认是没有 Console 对象&#xff0c;这是宿主对象&#xff08;也就是浏览器&#xff09;提供的内置对象。 用于访问调试控制台, 在不同的浏览器里效果可能不同。 Console 对象常见的两个用途&#xff1a; 显示网页代码运…

SAP STO跨公司间转储含POD交货操作简介

STO跨公司间转储含POD交货这个业务常见于集团性的公司&#xff0c; 1、同一个集团下A公司和B公司都是独立的&#xff0c;A公司向B公司进行采购。B公司会有一张交货单&#xff0c;然后基于交货单进行过账&#xff0c;收货&#xff0c;开票等操作。 2、当同一个公司下不同工厂间…

微信支付,微信平台证书如何下载,如何获取平台证书 wxpay如何初次获取平台证书 java初次生成平台证书, java生成微信platform.pem

1. 场景&#xff1a;使用ijpay&#xff0c;调用获取平台证书失败。 属于初次获取平台证书。 注&#xff1a;做返回校验使用&#xff0c;不校验好像也没事&#xff0c;但是支付无小事&#xff0c;强烈建议获取平台证书&#xff0c;校验后做回调相关处理&#xff01;&#xff01;…

【iOS】YYModel源码阅读笔记

文章目录 前言一、JSON转换库对比二、YYModel性能优化三、YYModel的使用四、架构分析YYClassInfo 剖析 五、流程剖析转换前准备工作 – 将JSON统一成NSDictionary将NSDictionary 转换为Model对象提取Model信息使用NSDictionary的数据填充Model 总结 前言 先前写了JSONModel的源…

学习了解 JSON Schema

在数字时代&#xff0c;数据的快速增长要求开发者掌握有效的管理和验证技术。JSON&#xff08;JavaScript Object Notation&#xff09; 是一种流行的轻量级数据交换格式&#xff0c;在网络编程中有广泛应用。为了应对复杂数据的挑战&#xff0c;JSON Schema 诞生&#xff0c;提…

C++九州控制地址结构else 陈述

else如同英文字义&#xff0c;九州qa98錪cc否则的意思&#xff0c;通常放在if的后面&#xff0c;若if的条件为真&#xff0c;就执行if底下大括弧围起来的程式区块&#xff0c;若为假&#xff0c;就执行else底下大括弧围起来的程式区块。 形式如下&#xff1a; 这个概念用于二选…

PostgreSQL Schema管理基础

Postgresql schema是什么、为什么它们很重要以及如何使用schema(模式)使您的数据库实现更加健壮和可维护&#xff1f;本文将介绍 Postgresql 中schema的基础知识&#xff0c;并通过一些基本示例向您展示如何创建它们。未来的文章将深入探讨如何保护和使用实际应用程序schema的示…

[linux]基于Ubuntu24.04原内核6.8.0升级到6.9.0

物理机操作系统&#xff1a; 虚拟机操作系统&#xff1a; Ubuntu 24.04 下载地址&#xff1a; https://mirror.nju.edu.cn/ubuntu-releases/24.04/ubuntu-24.04-desktop-amd64.iso VM版本信息&#xff1a; 内核源代码来源&#xff1a; https://ftp.sjtu.edu.cn/sites/ftp.kern…

Open vSwitch 守护进程的 upcall 处理(re)

一、upcall 消息的类型 在 Open vSwitch 的数据包转发流程中&#xff0c;如果数据包在内核空间无法完全处理&#xff08;比如匹配不到流表项&#xff09;&#xff0c;就会发生 upcall 调用&#xff0c;将数据包从内核空间的 Datapath 模块传输至用户空间的 ovs-vswitchd 守护进…

Mybatis源码解读

MyBatis是我们工作中常见的ORM持久层框架&#xff0c;对于MyBatis并不能仅仅局限于会使用的阶段&#xff0c;更需要了解它的工作原理&#xff0c;想要了解原理&#xff0c;源码是必须要读的&#xff0c;这篇文章是我个人在阅读MyBatis的源码过程中的一些简单的总结&#xff0c;…

过孔开窗、过孔盖油、过孔塞油、过孔塞树脂的比较

一、过孔开窗、过孔盖油、过孔塞油、过孔塞树脂的比较: 过孔开窗是指过孔的焊环上面裸露,不盖油墨。如果做表面处理喷锡的话,焊环这里就类似于贴片焊盘上锡,可以用来焊接作用。 过孔盖油指的是via过孔的焊环上面不裸露,覆盖油墨,为避免板子使用时有短路等情况。

霍尼韦尔落地灯好用吗?书客、霍尼韦尔、柏曼护眼大路灯对比较量!

我们都知道光线无处不在&#xff0c;想要减少近视隐患&#xff0c;就不得不提一下护眼灯了&#xff0c;特别是经常坐在电脑前码字的上班族以及深夜还在学习的学生党这一类人群&#xff0c;经常用眼光线不好不仅影响视力健康&#xff0c;还会影响效率。而一款护眼灯能够提供柔和…

人工智能术语

1、人工智能的概念 人工智能概念&#xff0c;在1956年召开的达特茅斯会议上正式被提出。该会议是由信息学鼻祖克劳德.艾尔伍德.香农(ClaudeElwoodShannon)以及马文.明斯基(Marvin Minsky)、约翰.麦卡锡(JohnMcCarthy)等十位信息学、数学、计算机学的科学先驱&#xff0c;在美国…

红黑树的基本原理

目录 一.概念与性质 二.基本操作 1.建树 2.插入 情况一 情况二 3.查找 4.验证 三.红黑树与AVL树的比较 一.概念与性质 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或 Black。 通过对任何一条从根…

构建大语言模型友好型网站

以大语言模型为代表的AI 技术迅速发展&#xff0c;将会影响原有信息网络的方式。其中一个明显的趋势是通过chatGPT 对话代替搜索引擎和浏览器来获取信息。 互联网时代&#xff0c;主要是通过网站&#xff08;website&#xff09;提供信息。网站主要为人类阅读的方式构建的。主要…

✊构建浏览器工作原理知识体系(网络协议篇)

🌻 前言 书接上回~ 系列文章目录: # ✊构建浏览器工作原理知识体系(开篇)# ✊构建浏览器工作原理知识体系(浏览器内核篇)# ✊构建浏览器工作原理知识体系(网络协议篇)✊构建浏览器工作原理知识体系(网页加载超详细全过程篇)为什么你觉得偶尔看浏览器的工作原理,…

【稳定检索/投稿优惠】2024年艺术、语言与文化交流国际会议(ALCE 2024)

2024 International Conference on Art, Language, and Cultural Exchange 2024年艺术、语言与文化交流国际会议 【会议信息】 会议简称&#xff1a;ALCE 2024 截稿时间&#xff1a;点击查看 大会地点&#xff1a;中国桂林 会议官网&#xff1a;www.icalce.com 会议邮箱&#…

重生奇迹mu套装掉的地点一览

1、目前只有三个地方掉套装&#xff1a;赤色要塞&#xff0c;不是100%掉&#xff0c;靠运气。卡利玛7&#xff0c;杀困顿能掉。魔炼之地&#xff0c;只有城主盟成员可以进入。 2、只有攻城城主盟可以进入的地图“魔炼之地”掉套装&#xff0c;暴率几乎为0。如果你是敏法的话&am…