操作系统实验报告心得体会

以下是我为大家整理的操作系统实验报告的心得体会。
欢迎您阅读。
更多相关内容,关注体验专栏。

从操作系统实验报告中学习

每次课程设计都让我学到了在普通课堂上学不到的东西。
所以我很珍惜任何设计课程的机会。
我不一定知道我的课程设计会有多完美,但我总是非常专注于研究和学习。
所以在那两周的课程里,我整整熬了两个晚上,我的生物钟被严重打乱了。
但每次完成任务我都会很兴奋。
一开始作业只是作业,后来作业变成了我自己的工作。
总体而言,课程设计满足了教师的基本要求。
总结起来,我有以下几点体会。

1.互联网非常强大,在学习中使用它将会是一个非常有效的助手。
几乎所有信息都可以在线获取。
从Linux虚拟机的安装,到Linux的各种基本命令操作,到gtk的图形功能,最后到文件系统的详细分析。
这些都可以在网上找到。
正因为如此,整个课程设计完成后,我已经浏览了100多个相关网站(不完全统计)。
当然,网络上的东西很乱很复杂,你需要学会如何过滤它们。

如果你无法决定什么是对什么是错,一个非常简单的方法就是尝试一下。
以第二个实验为例。
编译内核的时候有很多小操作。
如果这些小操作之一出错,编译可能会失败,这非常耗时,接近3个小时。
所以要非常小心,尽量少犯错误并节省时间。
多找一些参考资料,互相比较,慢慢研究,最后就能事半功倍。

3敢于解决困难问题问题越困难,你就越需要具有挑战性。
这样就可以达到废寝忘食的状态。
当然,不建议熬夜。
毕竟,只有有能量,才能打持久战。
但你在设计课程的时候需要有一个心态,在吃饭、睡觉、上厕所的时候能够思考你想要解决的问题。
这样一来,就算你做了,也会很困难。
没有成功。

4、课程设计过程中最好养成记录的习惯,这样写实验报告时就能记住过程中出现的各种问题。
例如,遇到了以前从未遇到过的段错误问题,我不知道从哪里开始。
查阅了很多资料,对segfaults有了一些了解,可以使用相应的方法来解决。

编程中的以下几种做法很容易导致段错误,这基本上是由于指针使用不当造成的

1)访问系统数据区域,尤其是系统保护的内存地址写入数据时,最常见的方法是给出一个指针地址0

2)内存越界(数组越界、变量类型不一致等)访问不属于的内存区域给你

 3)其他

<例如:

<1>定义指针后记得初始化,使用时记得评估是否为null

<2>使用时数组是否初始化、数组签名是否越界、数组元素是否存在等

<3>处理变量时,是否进行格式检查变量的合理性等

解决方案

1.使用gdb一步步查找分段错误:

2.分析核心文件

3.出现段错误时开始调试:

4.使用backtrace和objdump进行分析:

总之,对待课程设计就像对待自己的作业一样,不要把它当作作业。

​学习操作系统的心得

转眼间,一学期的计算机操作系统课程即将结束。
这学期,通过老师的精心教学,我对计算机操作系统的一些原理和具体操作流程有了深刻的了解。

在学习操作系统之前,我只是粗浅地认为操作系统只是简单的讲一些计算机的操作和应用,并没有了解具体的操作流程和实用功能。
通过这学期的学习,我了解到操作系统(OperatingSystem,简称OS)控制着计算机系统中的所有硬件资源,包括软件资源和计算机资源。
为其他应用软件等提供支持,最大限度地利用计算机系统的所有资源,为用户提供方便、高效、友好的服务界面;。

经过一个学期的学习,我也知道了计算机操作系统是分层在计算机硬件之上的多层系统软件。
它不仅增强了系统的功能,还隐藏了硬件操作的细节,实现了硬件操作的多层次抽象。
操作系统的一些原理也运用在生活中。
以下是我这学期将操作系统的一些原理与生活联系起来的体会:

【1.生产消费者问题

在操作系统本身的运行过程中,我们经常会遇到这样的场景:某个模块负责生成数据,而这个数据由另一个模块处理(这里的模块是广义的,可以是类,函数、线程​​、进程等)。
生成数据的模块称为生产者。
处理数据的模块称为消费者。

简单地抽象生产者和消费者并不足以成为生产者-消费者问题。
这个问题还需要生产者和消费者之间有一个缓冲作为中介。
生产者将数据放入缓冲区,消费者从缓冲区取出数据。

为了理解这个问题,让我们以发送信件为例。
假设你要发一封普通的信件,一般流程如下:

1.你写信——对应厂家的生产数据

2.你把信放进去邮箱--对应制造商将数据放入缓冲区

3、邮递员从邮箱中取出信件-对应消费者从缓冲区取出数据

4.邮递员将信件带到邮局进行相应处理-对应消费者处理数据

2、银行家算法——避免死锁

死锁的发生是指在执行过程中,两个或多个进程竞争资源,造成各自等待的现象其他。
没有外在的力量,他们就无法前进。
此时就说系统陷入了死锁,或者说系统已经发生了死锁。
这些总是互相等待的进程称为死锁进程。
由于资源分配是相互排斥的,因此所讨论的进程永远不会被分配所需的资源,并且在没有外部帮助的情况下无法继续运行。
这会产生一种称为死锁的特殊现象。
我觉得操作系统所说的死锁就像两个人过独木桥、两辆车过单向桥等阻塞现象。
原因是共享资源,即道路。

提高利用率系统资源并避免死锁,我们不限制死锁存在的必要条件。
相反,我们采用一种方法来防止系统在动态分配资源时进入不确定状态,从而避免可能出现的死锁。
然而,最具代表性的死锁避免算法是Dijkstra的银行家算法。
该方法将系统的状态分为安全状态和不安全状态,只要系统能够始终处于安全状态,就可以避免死锁。
银行家算法的基本思想是在分配资源之前判断系统是否安全,如果安全的话。

我们可以把操作系统想象成一家银行,操作系统管理的资源对应着银行贷款给银行家管理的资金。
为保证资金安全,银行家确定:(1)当客​​户的最大资金需求不超过银行现有资金时,可以接受客户;

(2)客户可以分期借款,但贷款总数不能超过最大需求;

(3)当银行现有资金不能满足客户仍需要的贷款金额时,可以延期向客户发放贷款,但客户可以延期还款。
始终在有限的时间内获得贷款;

(4)当客户收到所需的全部资金后,即可在有限的时间内归还全部资金。

另外,我们还可以把操作系统想象成建造一座房子,操作系统的资源就是建造房子所用的起重机的数量,以及操作系统所请求的进程。
根据建造房屋时所需的起重机数量分配资源。
为保证工程顺利进行,操作流程如下:

当房屋吊车最大需求量不超过建房现有吊车数量时,即可进行房屋施工已受理;

拟建房屋可多次申请吊车,但申请吊车总数不能超过最大需求量;

现有吊车数量无法满足时特定房屋所需的起重机,所需起重机的数量直到房子被推迟,但房子总是可以在有限的时间内给予。

当正在建造的房子得到了它需要的所有起重机时,它必须能够在一段时间内归还所有起重机时间有限。

进程同步问题

一个进程到达某个点后,除非其他进程完成了某些操作,否则它必须停止并等待另一个进程发出它,然后才能收到消息,进程处于等待状态,收到消息后被唤醒,处于就绪状态。
这就是进程同步。
我们在生活中也能找到类似的例子:

比如,一个汽车司机和一个售票员,负责开车、进站、开门、关门、进站。

售票员负责售票进出站后,正常情况下观察车门并向司机发送开关门信息,他们分别行动,司机开车,售票员售票时,双方在进出车道时必须同步流程。

总结:

总之,操作系统的一些原理可以在生活中相应的例子中找到。
结合生活中的例子,可以化抽象为具体,我们会更清楚地理解它的原理和运行过程。
相信通过我们不断的学习,结合生活中的实际问题,我们一定会更好的学好操作系统。

linux实验求助

实验报告实验名称:Linux观察行为实验时间:年月日实验者:(姓名)(学号)(年级)实验目的:掌握一些基本的Linux命令以及其他系统监控和Linux内核的常用命令。
熟悉进程、存储和其他资源以及/proc虚拟文件系统的一些重要特性。
实验环境:Linux实验步骤:1、使用账号root、密码123456登录Linux系统。
2.运行ps、manps、cal、date、clear、who和which命令并观察输出。
3.运行:/proc文件系统相关命令(见下面实验说明3),观察输出结果实验说明:1、基础知识:为什么/proc是虚拟文件系统:proc文件系统是一个伪文件系统。
它存在于内存中,不占用外部内存空间。
该文件的作用:以文件系统的形式提供访问系统内核数据的接口。
通过proc,用户和应用程序可以获得系统信息并更改内核的某些参数。
2.编写以下运行命令的输出(要获得结果,请在终端中逐字键入命令)cal:返回当前年月日历whoamI:返回当前用户信息find/usr-name"clear":设置/clear的路径返回为。
示例:/use/bin/clearwhichls:aliasls='ls--color=tty'/bin/ls3。
完成以下liunx系统问题(/proc文件系统)²CPU类型和型号Ø命令:cat/proc/cpuinfoØ结果:(逐字键入命令以获取结果)²Linux内核版本和使用的编译器版本Ø命令:cat/proc/versionØ结果:(键入命令逐字获取结果)²配置了多少内存Ø命令:cat/proc/meminfoØ结果:MemTotal条目是总内存。
²当前可用内存量。
Ø命令:cat/proc/meminfoØ结果:MemFree条目是可用内存。
²有多少个磁盘读写请求?命令:cat/proc/statØ结果:disk_ioentry²系统启动以来创建的进程数为Ø命令:cat/proc/statØ结果:进程条目的实验总结,即线程总数:...

Linux命令实验报告linux命令实验

如何在Linux中使用命令管理用户和组?

在Linux中使用命令管理本地用户和组

本地用户和组:管理文件、进程等。

本地用户和组:

>

1)Root:超级管理员系统创建的第一个帐户。

功能:

id:0

主目录:/root

对系统具有完全控制权。
请谨慎使用,因为可能会发生这种情况。

#id

uid=0(root)gid=0(root)groups=0(root)context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

#

2)普通用户:无管理员权限。

功能:

id范围:

1000=id=60000

主目录:/home/用户名

#idstudent

uid=1000(学生)gid=1000(student)groups=1000(student),10(wheel)

#

3)服务用户:服务的权限提供

功能:

ID范围:

0id1000

主目录:应用服务目录

#idapache

uid=48(apache)gid=48(apache)groups=48(apache)

#

如果是yum,则已安装rpm.安装的软件:通过rpm包中的脚本创建服务帐户。

包含conf.modules.d/*.conf

#

#Ifyouwishhttpdtorunasa其他用户或group,youmustrun

#httpdasroot首先切换。

#

#User/Group:用户/组的名称(或#number)torunhttpdas。

#像大多数系统服务一样

#创建专门的用户和组来运行httpd通常是一个很好的做法。

#

Userapache

Groupapache

#'主'服务器配置

#

本地组:

1)主要组:用户必须属于特定的主组。
有些用户创建文件时,会赋予该文件一个所属组。

2)子组:用户容器,用户权限控制配置与管理

功能:

文件:

进程:

$ps-ux

USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND

student321780.00.4930529360?Ss15:000:00/usr/lib/system

student321820.00.32537767072?S15:000:00(sd-pam)

student321880.00.21594124980?S15:000:00sshd:student@p

student321890.00.22339124864pts/0Ss15:000:00-bash

student322930.30.21594085192?D15:430:00sshd:student@p

student322940.30.22339124924pts/1Ss15:430:00-bash

student323190.50.22339404804pts/1S15:430:00/bin/bash

student323410.00.22693123876pts/1R+15:430:00ps-ux

$

账户文件:

1)/etc/passwd:用户信息保存

#cat/etc/passwd|grepstudent

student:x:1000:1000:StudentUser:/home/student:/bin/bash

用户名称密码uid主要组ID说明主目录登录shell

#

#cat/etc/passwd|grep-wroot:x

root:x:0:0:root:/root:/bin/bash

#

#cat/etc/passwd|grepapache

apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin

服务帐号无法登录系统。

#

2./etc/shadow:存储用户密码的HASH、密码有效期信息、密码修改时间、账户有效期。

#

#ls-l/etc/shadow

---------.1rootroot1014Mar2911:39/etc/shadow

#

#

#cat/etc/shadow|grepstudent

学生:$6$8oIjLCsc$/n1iQXYh1E6.uOEuJKgioqAtmqm2TQmkJGF2RwyteIr1tIfrPdiRYgWe6Sjen5/eMij2uHM/a1tue/QRlo3X80:18038:0:99999:7:::

#

密码哈希:sha512

8oIjLCsc$/n1iQXYh1E6.uOEuJKgioqAtmqm2TQmkJGF2RwyteIr1tIfrPdiRYgWe6Sjen5/eMij2uHM/a1tue/QRlo3X80

18038:一位数字密码。
自1970-01-01起,密码最后一次修改后的第二天+18038天

0:密码已使用的最小天数0无限制用户可以随时更改密码

99999:天数,密码最长修改时间永久大于200年。

7:密码最后修改时间距7天后用户将收到警告。
我们谨通知您,情况发生了变化。

::过期时间(天)非活动用户密码已超过最后修改时间,并且密码尚未更改。
您的帐户将在几天后被锁定。

::帐户有效期

创建用户和群组:

创建时无需密码:

>

#useraddzhangsan

#useraddlisi

#idzhangsan

uid=1001(Jangsan)gid=1001(Jangsan)groups=1001(Jangsan)

#idlisi

uid=1002(lisi)gid=1002(lisi)groups=1002(lisi)

#

无法登录:PAM相关

$

$su-zhangshan

密码:

密码:

su:Authenticationfailure

$

密码设置:

#

#cat/etc/passwd|grepzhangsan

zhangsan:x:1001:1001::/home/zhangsan:/bin/bash

#cat/etc/shadow|grepzhangsan

zhangsan:!!:18350:0:99999:7:::#!!密码未设置

#

#passwdzhangsan

更改userzhangsan的密码。

新密码:

BADPASSWORD:密码较短超过8个字符。
ers

请重新输入您的新密码:

passwd:alauthenticationtoken已成功更新。

#

#

#cat/etc/shadow|grepzhangsan

zhangsan:$6$3wxuXomVbQ58wQcK$oQW6injgldxa2N/Pt4tCPDVRqWRVGw.UNZdxE4R0nhEt8K/3UDKzxap6ReIReEvDpG.GdwjpMiiDh7.f6DJNQ0:18350:0:99999:7:::

#

chage可以看到用户。
密码属性

#chage-lzhangsan

最后一次密码更改:2020年3月29日

密码过期:无

PasSwordinactive:从不

帐户过期:永不

密码更改之间的最短天数:0

密码更改之间的最大天数天数:99999

密码过期前的警告天数:7

#

创建组:子组

#

#groupaddit

#

#

#groupaddsales

#

#

#

#cat/etc/group

root:x:0:

bin:x:1:

守护进程:x:2:

sys:x:3:

adm:x:4:

tty:x:5:

磁盘:x:6:

lp:x:7:

mem:x:8:

kmem:x:9:

wheel:x:10:stuDent

cdrom:x:11:

mail:x:12:postfix

man:x:15:

拨出:x:18:

软盘:x:19:

游戏:x:20:

磁带:x:33:

视频:x:39:

ftp:x:50:

锁定:x:54:

音频:x:63:

用户:x:100:

无人:x:65534:

dbus:x:81:

utmp:x:22:

诱惑者:x:35:

输入:x:999:

kvm:x:36:

渲染:x:998:

systemd-journal:x:190:

系统核心ump:x:997:

systemd-resolve:x:193:

tss:x:59:

polkitd:x:996:

rpc:x:32:

un边界:x:995:

ssh_keys:x:994:

sssd:x:993:

setroubleshoot:x:992:

rpcuser:x:29:

见解:x:991:

cockpit-ws:x:990:

sshd:x:74:

chrony:x:989:

tcpdump:x:72:

学生:x:1000:

printadmin:x:988:

libstoragemgmt:x:987:

slocate:x:21:

postdrop:x:90:

postfix:x:89:

apache:x:48:

zhangsan:x:1001:

lisi:x:1002:

it:x:1003:群组成员列表

销售额:x:1004:

#

#idstudent

uid=1000(学生)gid=1000(学生t)groups=1000(学生),10(轮子)

#

添加用户到群组:zhangsan、Joinitgroup、lisi、salesgroup

#student

uid=1000(student)gid=1000(student)groups=1000(student),10(wheel)

#usermod-aGitzhangsan

#

#

#usermod-aGsaleslisi

#

#

#idzhangsan

uid=1001(Jangsan)gid=1001(zhangsan)groups=1001(zhangsan),1003(it)

#idlisi

uid=1002(lisi)gid=1002(lisi)groups=1002(lisi),1004(销售)

#

用户删除:

#useraddandy

默认删除并保留用户信息。
文件:

#

#userdelandy

#

#

#useraddandy#重建andy不一样uid也会不同

useradd:warning:thehomedirectoryalreadyexists。

不会从skel目录复制任何文件。

正在创建邮箱file:file存在

#

#useradduser1

#useradduser2

#idandy

uid=1003(andy)gid=1005(安迪)组=1005(安迪)

#userdel-rany

userdel:user'any'doesnotexist

#

#userdel-randy#No保存您的文件。
主目录、邮箱文件和skel文件都有id:'andy'。
nosuchuser

#useraddandy

#idandy

uid=1006(andy)gid=1008(andy)groups=1008(andy)

#

从组中删除用户:

#

#idzhangsan

uid=1001(Jangsan)gid=1001(Jangsan)groups=1001(Jangsan)an),1003(it)#zhangsan基本组、it子组

#

命令:

#gpasswd-dzhangsanit

groupit中的userzhangsan删除

#

#

#idzhangsan

uid=1001(zhangsan)gid=1001(zhangsan)groups=1001(zhangsan)

#

#

#usermod-aGitzhangsan

#

#

#idzhangsan

uid=1001(zhangsan)gid=1001(zhangsan)groups=1001(zhangsan),1003(it)

#

#

#

#groupszhangsan

zhangsan:zhangsanit

#

请直接编辑文件:

#vim/etc/group

#cat/etc/group|grepit:

it:x:1003:

#

<集团删除:

#groupaddtest

#

#

#groupdeltest

创建自定义用户和组:

实验:指定用户名mary,用户ID2000,主目录/maryhome,系统描述无需登录thisismaryuser

#

#useradd-u2000-d/maryhome-s/sbin/nologin-c"thisismary"mary

#

#idmary

uid=2000(玛丽)gid=2000(玛丽)组=2000(玛丽)

#cat/etc/passwd|grepmary

mary:x:2000:2000:thisismary:/maryhome:/sbin/nologin

#

#SunMary

上次登录:SunMar2916:48:49CST2020onpts/0

此帐户当前为不可用。

#

创建自定义组:指定组ID

#groupadd-g3000group1

#cat/etc/group|grepgroup1

group1:x:3000:

#

Linux命令详细解释?

Linux命令是管理Linux系统的命令。
对于Linux系统来说,中央处理器、内存、磁盘驱动器、键盘、鼠标、用户等都是文件,管理Linux系统的命令是正常运行的关键。

在线查询和帮助命令(二)

man:查看命令帮助、命令字典等比较复杂的信息,但不常用。

help:查看Linux内置命令的帮助,例如cd命令。

如何撰写Linux培训报告?

实验目的:

1.熟悉与系统管理相关的命令。

2.熟悉重定向和管道操作。
3、熟悉后台执行器。

3.并掌握使用crontab中的任务调度。
实验设备及环境:

PC兼容机(具体型号),Fedora14/CentOS实验内容及要求:

实验内容:

1.系统管理:

top、free、who、w、ps、kill

2.在后台运行vi命令,然后终止任务。

3.使用重定向符号将当前登录系统用户的信息记录到文件中。

4.管道作业及使用wc命令来统计文件的数量。
/etc目录下的目录。

5.:今天下午4点运行/bin/ls

6.使用crontab实现:每天下午4点运行/bin/ls

实验要求:

在计算机上完成独立实验并执行相关任务。
提交详细的实验室报告。
报告必须以A4纸打印并以电子方式上传提交。

四个实验步骤

(一)系统管理相关命令练习:top、free、who、w、ps、kill

Top命令

>P>

3f829e29e76caa8c3b1f630a6b27d58d.gif

1.001.jpg(64.78KB,下载次数:20)

上传于2017年6月-101:39

免费命令

3f829e29e76caa8c3b1f630a6b27d58d.gif

1.002.jpg(6.22KB,下载次数:49)

上传于2017-6-101:39

谁指挥(w命令)

3f829e29e76caa8c3b1f630a6b27d58d.gif

1.003.jpg(6.54KB,下载时间:52)

上传于2017-6-101:39

1.003.jpg(6.54KB,下载时间:52)

Ps命令

3f829e29e76caa8c3b1f630a6b27d58d.gif

1.004.jpg(5.53KB,下载时间:44)

2017-6-101:39已上传

KillCommand

3f829e29e76caa8c3b1f630a6b27d58d.gif

1.005.jpg(6.52KB,下载次数:56)

2017-6-101:39上传

(2)后台运行vi命令之后,执行结束。

3f829e29e76caa8c3b1f630a6b27d58d.gif

1.006.jpg(14.77KB,下载时间:22)

上传于2017-6-101:39

(3)对于当前使用重定向符号登录系统的用户:将信息写入文件。

3f829e29e76caa8c3b1f630a6b27d58d.gif

1.007.jpg(17.15KB,下载时间:44)

2017-6-101:39上传

(4)使用管道任务和wc命令统计/etc目录下的文件和目录的数量。

3f829e29e76caa8c3b1f630a6b27d58d.gif

1.008.jpg(7.82KB,下载时间:158)

上传于2017-6-101:39

(5)在立即实施中使用:今天下午4点运行/bin/ls。

3f829e29e76caa8c3b1f630a6b27d58d.gif

1.009.jpg(4.83KB,下载时间:51)

于2017-6-101:39已上传

(6)使用crontab实现:每天下午4点运行/bin/ls

3f829e29e76caa8c3b1f630a6b27d58d.gif

1.010.jpg(2.73KB,下载时间:34)

实验总结于2017-6-101:39上传