武汉大学信息安全操作系统实验报告

合集下载

操作系统安全实验1实验报告

操作系统安全实验1实验报告

操作系统安全实验1实验报告一、实验目的本次操作系统安全实验的主要目的是让我们深入了解操作系统的安全机制,通过实际操作和观察,掌握一些常见的操作系统安全配置和防护方法,提高对操作系统安全的认识和应对能力。

二、实验环境本次实验使用的操作系统为Windows 10 和Linux(Ubuntu 2004),实验设备为个人计算机。

三、实验内容与步骤(一)Windows 10 操作系统安全配置1、账户管理创建新用户账户,并设置不同的权限级别,如管理员、标准用户等。

更改账户密码策略,包括密码长度、复杂性要求、密码有效期等。

启用账户锁定策略,设置锁定阈值和锁定时间,以防止暴力破解密码。

2、防火墙配置打开 Windows 防火墙,并设置入站和出站规则。

允许或阻止特定的应用程序通过防火墙进行网络通信。

3、系统更新与补丁管理检查系统更新,安装最新的 Windows 安全补丁和功能更新。

配置自动更新选项,确保系统能够及时获取并安装更新。

4、恶意软件防护安装并启用 Windows Defender 防病毒软件。

进行全盘扫描,检测和清除可能存在的恶意软件。

(二)Linux(Ubuntu 2004)操作系统安全配置1、用户和组管理创建新用户和组,并设置相应的权限和归属。

修改用户密码策略,如密码强度要求等。

2、文件系统权限管理了解文件和目录的权限设置,如读、写、执行权限。

设置特定文件和目录的权限,限制普通用户的访问。

3、 SSH 服务安全配置安装和配置 SSH 服务。

更改 SSH 服务的默认端口号,增强安全性。

禁止 root 用户通过 SSH 登录。

4、防火墙配置(UFW)启用 UFW 防火墙。

添加允许或拒绝的规则,控制网络访问。

四、实验结果与分析(一)Windows 10 操作系统1、账户管理成功创建了具有不同权限的用户账户,并能够根据需求灵活调整权限设置。

严格的密码策略有效地增加了密码的安全性,减少了被破解的风险。

账户锁定策略在一定程度上能够阻止暴力破解攻击。

信息安全实验实习报告

信息安全实验实习报告

信息安全实验实习报告一、实习目的与背景随着信息化进程的不断推进,信息安全问题日益凸显,成为制约我国经济社会发展的重要因素。

为了提高我国信息安全人才的实践能力,培养具备实战经验的网络安全技术人才,本次实习旨在通过实际操作,使学生了解信息安全的基本原理,掌握信息安全实验技能,提升信息安全防护能力。

本次实习内容主要包括:密码学实验、网络攻防实验、漏洞分析与利用实验、安全防护技术实验等。

通过对这些实验的学习与实践,使学生熟练掌握信息安全实验工具,提高信息安全实验技能,为将来的信息安全工作打下坚实基础。

二、实习时间与地点实习时间:2021年6月1日至2021年6月30日实习地点:XX大学计算机实验室三、实习内容与过程1. 密码学实验密码学是信息安全领域的核心技术。

通过本次实验,学生需要掌握对称加密、非对称加密、哈希函数等基本概念,并学会使用相关工具进行加密和解密操作。

(1)学习对称加密算法(如DES、AES等)的原理和实现方式;(2)学习非对称加密算法(如RSA、ECC等)的原理和实现方式;(3)学习哈希函数(如MD5、SHA-1等)的原理和实现方式;(4)利用实验工具进行加密和解密操作,验证算法正确性。

2. 网络攻防实验网络攻防实验旨在让学生了解网络攻击的手段和防御策略,提高网络安全防护能力。

(1)学习网络攻击技术(如ARP欺骗、DNS劫持、端口扫描等);(2)学习网络防御技术(如防火墙、入侵检测系统、安全策略配置等);(3)利用实验工具进行攻防操作,锻炼实战能力;(4)分析实验结果,总结攻防经验。

3. 漏洞分析与利用实验漏洞分析与利用实验让学生了解软件漏洞的产生原因和利用方法,提高漏洞挖掘和利用能力。

(1)学习漏洞产生的原因和分类(如缓冲区溢出、格式化字符串漏洞等);(2)学习漏洞利用技术(如SQL注入、代码执行等);(3)利用实验工具进行漏洞挖掘和利用,验证漏洞存在性;(4)分析实验结果,提出修复漏洞的建议。

操作系统安全实验报告参考模板

操作系统安全实验报告参考模板

CENTRAL SOUTH UNIVERSITY操作系统安全实验报告学生姓名班级学号指导教师设计时间《操作系统安全》实验一……Windows系统安全设置实验一、实验目的1、了解Windows操作系统的安全性2、熟悉Windows操作系统的安全设置3、熟悉MBSA的使用二、实验要求1、根据实验中的安全设置要求,详细观察并记录设置前后系统的变化,给出分析报告。

2、采用MBSA测试系统的安全性,并分析原因。

3、比较Windows系统的安全设置和Linux系统安全设置的异同。

三、实验内容人1、配置本地安全设置,完成以下内容:(1)账户策略:包括密码策略(最小密码长度、密码最长存留期、密码最短存留期、强制密码历史等)和账户锁定策略(锁定阈值、锁定时间、锁定计数等)A.账户锁定策略:账户锁定阈值:指用户输入几次错误的密码后将用户账户锁定,默认为0,代表不锁定账户锁定时间:指当用户账户被锁定后经过多长时间会自动解锁,0表示只有管理员才能受控解锁复位账户锁定计数器:指用户由于输入密码错误开始计数时,计数器保持的时间,当时间过后,计数器复位为0.B.密码策略(2)账户和口令的安全设置:检查和删除不必要的账户(User用户、Duplicate User用户、测试用户、共享用户等)、禁用guest账户、禁止枚举帐号、创建两个管理员帐号、创建陷阱用户(用户名为Administrator、权限设置为最低)、不让系统显示上次登录的用户名。

A.创建用户:控制面板----管理工具----计算机管理-----本地用户和组-----用户---创建用户B.修改用户权限:控制面板---用户账户---管理其他账户---更改账户类型C.禁止枚举账号:禁止原因:枚举账号指某些具有黑客行为的蠕虫病毒可以通过扫描WindowsXP系统的指定端口,然后通过共享会话猜测管理员系统密码,因此需要禁止枚举账号方法:本地安全设置-“安全设置”-“本地策略”-“安全选项”-双击对匿名连接的额外限制-不允许枚举SAM账号和共享”D.创建陷阱用户:原因:本来用户是权限是非管理员,让黑客认为他是管理员,取名Administrator,是因为一般的管理员用户默认名为Administrator方法:右击我的电脑→管理→本地用户和组→用户→1、将右侧“管理计算机(域)的内置账户”默认的是administrator,改名为其他名字,但不要以admin、root等命名。

信息安全操作实验报告

信息安全操作实验报告

信息安全操作实验报告实验名称:信息安全操作实验实验目的:1. 掌握信息安全操作的基本知识和技能。

2. 熟悉常用的信息安全操作工具和方法。

3. 培养对信息安全的意识和保护意识。

实验步骤:1. 实验前准备:了解信息安全的基本概念和原则,并掌握常见的信息安全威胁和攻击方式。

2. 实验环境:搭建一个模拟的网络环境,包括若干主机和服务器。

3. 实验内容:3.1. 使用端口扫描工具扫描实验环境中的主机和服务器的开放端口,并记录扫描结果。

3.2. 通过漏洞扫描工具对实验环境中的主机和服务器进行漏洞扫描,并记录扫描结果。

3.3. 使用弱口令攻击工具对实验环境中的主机和服务器进行弱口令攻击,测试其安全性。

3.4. 利用网络钓鱼工具进行网络钓鱼攻击,诱导用户输入敏感信息,并分析攻击效果。

3.5. 使用反弹Shell工具在实验环境中获取目标主机的控制权,并演示如何防范此类攻击。

实验结果:1. 根据扫描结果,分析开放端口的意义和可能的安全威胁,及时进行相应的安全设置和防护措施。

2. 根据漏洞扫描结果,及时修补系统和应用程序的漏洞,以提高信息系统的安全性。

3. 验证弱口令攻击的威胁,警醒用户要设置强密码,并做好密码管理和定期更改密码的习惯。

4. 通过网络钓鱼攻击的演示,提高用户的警觉意识,防范钓鱼等社交工程攻击。

5. 演示防范反弹Shell攻击的方法,包括防火墙设置、入侵检测系统的配置和使用,提高系统的安全性。

实验结论:通过本次实验,我深刻认识到了信息安全的重要性和必要性。

信息安全操作是保护个人隐私、企业重要信息及国家安全的重要手段。

在实际工作和生活中,我们要时刻保持对信息安全的警惕,并采取相应的安全操作措施。

不仅对个人而言,企业和政府也要高度重视信息安全,加强信息安全的培训和管理,确保信息系统的安全稳定运行。

在信息安全操作中,要掌握一些基本的安全工具和方法,如端口扫描、漏洞扫描、弱口令攻击和网络钓鱼攻击等。

了解这些攻击手段和防范方法,有助于提升自身的信息安全意识和能力。

信息安全实验报告

信息安全实验报告

信息安全实验报告一、实验目的随着信息技术的飞速发展,信息安全问题日益凸显。

本次实验的目的在于深入了解信息安全的重要性,掌握常见的信息安全攻击与防御手段,并通过实际操作提高对信息安全问题的应对能力。

二、实验环境本次实验在以下环境中进行:1、操作系统:Windows 10 专业版2、应用软件:Wireshark 网络协议分析工具、Metasploit 渗透测试框架、Nmap 网络扫描工具等3、网络环境:实验室内部局域网三、实验内容1、网络扫描与漏洞检测使用Nmap 工具对目标网络进行扫描,获取网络中主机的存活状态、开放端口等信息。

通过分析扫描结果,发现了一些潜在的安全漏洞,如某些主机开放了不必要的端口,可能导致未经授权的访问。

2、密码破解利用常见的密码破解工具,对预设的密码哈希值进行破解。

实验中采用了字典攻击和暴力攻击两种方法。

通过字典攻击,成功破解了一些简单的密码;而暴力攻击由于计算资源消耗较大,在有限的时间内未能取得明显效果。

3、网络监听与数据包分析使用 Wireshark 工具对网络中的数据包进行捕获和分析。

通过对捕获的数据包进行深入研究,发现了一些明文传输的敏感信息,如用户名和密码,这暴露了网络通信中的安全隐患。

4、漏洞利用与渗透测试借助 Metasploit 框架,对存在漏洞的目标系统进行渗透测试。

成功利用了一个已知的漏洞获取了系统的控制权,这充分说明了及时修复系统漏洞的重要性。

四、实验结果与分析1、网络扫描结果显示,部分主机存在安全配置不当的问题,开放了过多的端口,增加了遭受攻击的风险。

建议加强网络设备的安全配置,只开放必要的端口。

2、密码破解实验表明,简单的密码容易被破解,用户应采用复杂且包含多种字符类型的密码,并定期更换密码,以提高账户的安全性。

3、网络监听和数据包分析揭示了明文传输敏感信息的严重性。

应推广使用加密技术,确保数据在网络中的传输安全。

4、漏洞利用和渗透测试结果强调了及时更新系统补丁和加强安全防护的必要性,以防止黑客利用已知漏洞入侵系统。

信息安全的实验报告(3篇)

信息安全的实验报告(3篇)

第1篇一、实验目的本次实验旨在通过实际操作,加深对信息安全理论知识的理解,提高实际操作能力,培养信息安全意识。

实验内容包括:1. 熟悉常用的信息安全工具和软件;2. 学习基本的加密和解密方法;3. 掌握常见的信息安全攻击和防范措施;4. 了解网络安全的防护策略。

二、实验原理信息安全是指保护信息在存储、传输和处理过程中的保密性、完整性和可用性。

本实验涉及以下原理:1. 加密技术:通过对信息进行加密,使未授权者无法获取原始信息;2. 解密技术:使用密钥对加密信息进行解密,恢复原始信息;3. 安全协议:确保信息在传输过程中的安全;4. 入侵检测:实时监控网络和系统,发现并阻止恶意攻击。

三、实验内容1. 加密与解密实验(1)使用RSA算法对文件进行加密和解密;(2)使用AES算法对文件进行加密和解密;(3)使用对称密钥和非对称密钥进行加密和解密。

2. 信息安全工具使用实验(1)使用Wireshark抓取网络数据包,分析网络通信过程;(2)使用Nmap进行网络扫描,发现目标主机的开放端口;(3)使用XSSTest进行跨站脚本攻击实验;(4)使用SQL注入攻击实验。

3. 信息安全防护实验(1)使用防火墙设置访问控制策略;(2)使用入侵检测系统(IDS)监控网络流量;(3)使用安全审计工具对系统进行安全审计。

四、实验步骤1. 安装实验所需软件,如Wireshark、Nmap、XSSTest等;2. 按照实验指导书的要求,进行加密和解密实验;3. 使用信息安全工具进行网络扫描、漏洞扫描和攻击实验;4. 设置防火墙和入侵检测系统,对网络进行安全防护;5. 使用安全审计工具对系统进行安全审计。

五、实验结果与分析1. 加密与解密实验:成功使用RSA和AES算法对文件进行加密和解密,验证了加密技术的有效性;2. 信息安全工具使用实验:成功使用Wireshark抓取网络数据包,分析网络通信过程;使用Nmap进行网络扫描,发现目标主机的开放端口;使用XSSTest和SQL 注入攻击实验,验证了信息安全工具的功能;3. 信息安全防护实验:成功设置防火墙和入侵检测系统,对网络进行安全防护;使用安全审计工具对系统进行安全审计,发现潜在的安全隐患。

操作系统安全实验报告

操作系统安全实验报告操作系统是计算机必不可少的重要组成部分,它控制和管理计算机的硬件和软件资源。

安全是操作系统设计中不可忽视的一个方面,因为操作系统安全的缺陷将会导致计算机系统受到攻击甚至被控制。

本实验将演示一些常见的操作系统安全问题,并且提供一些实现技术,以保持计算机系统的安全。

一、实验目的1.了解和应用操作系统的安全机制。

2.通过操作系统安全漏洞的扫描和分析,掌握安全攻防的方法和技巧。

3.通过模拟实验操作,了解如何保护计算机系统不受恶意攻击。

二、实验环境操作系统:Windows 7工具软件:Metasploit、Nessus、Snort、Wireshark等三、实验内容操作系统的安全问题是计算机系统的基础性问题,其设计安全机制的目的是保证计算机系统的稳定、安全和可靠。

安全机制包括身份认证、存取控制、加密技术、密钥管理等。

在一个计算机系统中,操作系统是最重要的安全防护措施。

其机制包括:①登录身份验证:通过输入用户名和密码,确认用户的身份,确保只有认证的用户才能进入系统。

②文件访问控制:用户只能访问其拥有权限的文件和文件夹。

③口令管理:向用户提示更改用户口令的时间,管理员更改口令时需要重复输入。

④安全日志:记录重要的系统事件,为检测和防止安全问题提供依据。

⑤病毒和恶意程序的删除:安装杀毒软件,扫描系统并清除感染的病毒和恶意程序。

2. 安全漏洞扫描和分析安全漏洞扫描是通过对目标系统进行全面扫描,识别和确认目标系统存在的漏洞以及攻击者可能利用漏洞侵入的尝试。

常用的安全漏洞扫描工具有Nessus、OpenVAS等。

Nessus是一种广泛使用的开源安全工具,可以对网络上已知的漏洞进行扫描和检测,因此是安全人员发现网络系统的漏洞的重要工具之一。

在扫描中使用Nessus即可扫描目标主机的各种漏洞并给出报告,方便管理用户即使不是信息安全专业人士,也可以轻松检查主机系统中的安全漏洞。

3. 安全攻防技术安全攻防技术是一项基础的信息安全技术,其目的是定位和检测系统中的漏洞,找出安全防御的缺陷,以及针对潜在的安全问题进行定制化和有效的反应方式。

信息安全系统实习报告

实习报告实习单位:XX信息安全公司实习时间:2021年7月1日至2021年8月31日实习岗位:信息安全工程师一、实习背景与目的随着互联网的普及和信息技术的发展,信息安全问题日益凸显,我国政府和企业对信息安全的需求越来越大。

为了提高自己的专业素养,更好地将所学知识应用于实际工作中,我选择了信息安全公司进行为期两个月的实习。

本次实习旨在了解信息安全行业的现状和发展趋势,学习信息安全相关技术和知识,提高自己的实践能力。

二、实习内容及收获1. 实习内容(1)参与公司项目:在实习期间,我参与了公司的一个项目,负责对一个企业的内部网络进行安全评估。

(2)学习信息安全知识:我系统地学习了信息安全的基本概念、网络安全、系统安全、应用程序安全等方面的知识。

(3)实践操作:通过实际操作,掌握了信息安全管理、安全防护、安全检测等方面的技能。

2. 实习收获(1)理论知识:通过学习,我对信息安全的基本概念、网络安全、系统安全、应用程序安全等方面的理论知识有了更深入的了解。

(2)实践技能:在实际操作中,我掌握了信息安全管理、安全防护、安全检测等方面的技能,提高了自己的实践能力。

(3)团队协作:在项目实施过程中,我学会了与团队成员进行有效沟通,共同解决问题,提高了自己的团队协作能力。

(4)职业素养:实习过程中,我深刻体会到信息安全工作的重要性和责任感,增强了自己的职业素养。

三、实习总结通过两个月的实习,我对信息安全行业有了更加清晰的认识,收获颇丰。

在今后的学习和工作中,我将继续努力提高自己的专业素养,为我国的信息安全事业贡献自己的力量。

同时,我也认识到自己在某些方面还存在不足,需要继续努力学习和提高。

(1)加强理论学习:信息安全是一个涉及多学科的领域,需要不断学习新的理论知识,提高自己的综合素质。

(2)提高实践能力:通过实际操作,我发现自己在某些技能方面还有待提高,今后将继续加强实践锻炼。

(3)培养团队协作精神:信息安全工作往往需要团队协作,学会与他人沟通、协作,共同解决问题是至关重要的。

操作系统安全实验1实验报告

操作系统安全实验1一、实验目的1. 了解Windows的文件系统2. 掌握Windows操作系统的访问控制和审核技术3. 掌握系统安全配置和安全分析方法4.理解Windows平台下的漏洞扫描原理5. 掌握系统备份与恢复方法二、实验环境PC机,Windows XP操作系统,X-Scan v3.3,Ghost软件一套三、实验内容1. 系统安全配置与分析2. 管理用户帐户3. 授权管理4.设置审核策略5. 使用X-Scan对系统进行安全扫描6. 系统的网络服务管理7. 系统备份与恢复四、实验步骤与结果分析1、系统安全配置与分析(1)修改密码策略首先在“控制面板”中选择“管理工具”——“本地安全设置”——“帐户策略”——“密码策略”如下所示:双击“密码必须符合复杂性要求”或者右击它选择属性,启用该策略,如下所示:双击“密码长度最小值”,设置最短密码长度为8个字符,如下所示:设置“密码最短存留期”,确定用户在可以更改密码之前必须使用该密码的天数,设置为7天。

如下所示:设置“密码最长存留期”,确定系统在要求用户更改密码之前可以使用该密码的天数,设置为30天。

设置“强制密码历史”,防止用户重新使用旧密码,设置为3。

如下所示:设置完成后退出“本地安全设置”,在“运行”中输入命令:gpupdate,系统将刷新刚才修改的安全策略。

选择一个普通用户,为该用户重设口令,体会密码加强策略的作用,起初用户名设为love,密码设为520。

如下所示:结合密码复杂性设置原则(大写字母+小写字母+数字)再将密码修改为abc19881211,结果创建成功。

(2)设置帐户锁定策略对帐户锁定策略进行设置,值为2,然后重新登录系统,使用用户zhengjiaen口令登录系统,体会帐户锁定的作用。

如下所示:(4)系统安全策略分析在“运行”中输入MMC,打开控制台界面。

单击“文件”——“添加/删除管理单元”——“添加”,选择“安全配置和分析”并添加,如下所示:右击“安全配置与分析”,选择“打开数据库”,可以通过输入数据库名称1,并选择一个安全模板创建一个新的安全策略数据库,利用这个数据库可以分析当前计算机的安全配置与安全策略模板的差异,如下所示:利用安全策略模板对当前计算机进行配置。

信息安全实训课实验报告

一、实验背景随着信息技术的飞速发展,信息安全已成为当今社会关注的焦点。

为了提高我国信息安全水平,培养具备信息安全专业技能的人才,我国高校纷纷开设信息安全实训课程。

本实验报告旨在记录我在信息安全实训课程中的实验过程、实验结果以及实验心得。

二、实验目的1. 了解信息安全的基本概念和原理;2. 掌握信息安全实训课程中常用工具的使用方法;3. 提高信息安全防护意识和实际操作能力;4. 为今后从事信息安全工作打下坚实基础。

三、实验内容1. 实验一:操作系统安全配置(1)实验目的:掌握Windows操作系统的安全配置方法,提高系统安全性。

(2)实验步骤:1)检查操作系统版本,确保系统已安装最新补丁;2)关闭不必要的服务,减少系统攻击面;3)设置强密码策略,提高账户安全性;4)启用防火墙,防止恶意攻击;5)开启系统日志,便于安全事件追踪。

(3)实验结果:成功完成操作系统安全配置,提高了系统安全性。

2. 实验二:网络扫描与漏洞检测(1)实验目的:掌握网络扫描与漏洞检测工具的使用方法,发现潜在安全风险。

(2)实验步骤:1)使用Nmap进行网络扫描,获取目标主机信息;2)使用Nessus进行漏洞检测,发现目标主机存在的安全漏洞;3)针对发现的安全漏洞,提出相应的修复建议。

(3)实验结果:成功发现目标主机存在的安全漏洞,为后续修复工作提供依据。

3. 实验三:入侵检测与防范(1)实验目的:掌握入侵检测与防范工具的使用方法,提高网络安全防护能力。

(2)实验步骤:1)使用Snort进行入侵检测,监控网络流量;2)根据检测到的入侵行为,制定相应的防范措施;3)使用iptables进行网络安全策略配置,限制非法访问。

(3)实验结果:成功识别入侵行为,并采取相应措施,保障网络安全。

4. 实验四:加密与数字签名(1)实验目的:掌握加密与数字签名技术,提高信息安全防护水平。

(2)实验步骤:1)使用OpenSSL进行对称加密,保护数据传输安全;2)使用OpenSSL进行非对称加密,实现数字签名;3)验证数字签名,确保数据来源可靠性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

武汉大学计算机学院课程实验(设计)报告专业(班):计算机学院信息安全X班学号:姓名:XX课程名称:操作系统实验2013年5月30日实习一处理器调度一、实习内容选择一个调度算法,实现处理器调度.二、实习目的本实习模拟在单处理器环境下的处理器调度,加深了解处理器调度的工作。

三、实习题目设计一个按优先数调度算法实现处理器调度的程序.四、实习内容1.设计思想(1)假定系统有5个进程,每个进程用一个PCB来代表.PCB的结构为:·进程名——如P1~P5。

·指针——按优先数的大小把5个进程连成队列,用指针指出下一个进程PCB的首地址。

·要求运行时间--假设进程需要运行的单位时间数。

·优先数-—赋予进程的优先数,调度时总是选取优先数大的进程先执行.·状态—-假设两种状态:就绪和结束,用R表示就绪,用E表示结束。

初始状态都为就绪状态。

(2) 开始运行之前,为每个进程确定它的“优先数”和“要求运行时间”.通过键盘输入这些参数。

(3) 处理器总是选择队首进程运行.采用动态改变优先数的办法,进程每运行1次,优先数减1,要求运行时间减1.(4) 进程运行一次后,若要求运行时间不等于0,则将它加入就绪队列,否则,将状态改为“结束",退出就绪队列。

(5)若就绪队列为空,结束,否则转到(3)重复.要求能接受键盘输入的进程优先数及要求运行时间,能显示每次进程调度的情况,如哪个进程在运行,哪些进程就绪,就绪进程的排列情况。

2.上机代码#include <stdio.h>#include 〈string。

h〉#define num 5//5个进程struct PCB//进程控制块{char ID;//进程名int runtime;//进程运行时间int pri;//进程优先级char state;//进程状态};struct PCB pcblist[num];//进程控制块数组int fnum=0;//已运行完成的进程struct PCB temp;//在冒泡排序时用于替换的PCBvoid chushihua()//初始化程序{int i;for(i=0;i<num;i++){printf(”PCB[%d]:ID pri runtime \n”,i+1);scanf(”%s%d%d",&pcblist[i].ID,&pcblist[i].pri,&pcblist[i]。

runtime);pcblist[i].state='R’;//将所有进程的状态初始化为就绪状态getchar();}}void show()//显示当前进程状况程序{int i;printf(”\nID pri runtime state\n”);for(i=0;i〈num;i++){printf("%s%6d%9d %s\n”,&pcblist[i]。

ID,pcblist[i].pri,pcblist[i].runtime,&pcblist[i]。

state);}getchar();}void run()//主体执行部分程序,含将优先级进行冒泡排序及运行最高优先级的进程{int i,j,k;int t=0;//所有程序运行总时间for(j=0;j〈num;j++)//计算所有进程总的运行时间{if(pcblist[j].runtime==0)pcblist[j]。

state=’F’;t+=pcblist[j]。

runtime;}for(j=0;k〈t;j++){for(i=0;i<num—fnum;i++)//将状态为就绪的进程进行冒泡排序for(j=0;j〈num-i—1-fnum;j++)if(pcblist[j]。

pri〉pcblist[j+1]。

pri){temp=pcblist[j];pcblist[j]=pcblist[j+1];pcblist[j+1]=temp;}for(j=num—1;j〉=0;j--)//在排好序的进程中找到为就绪的最大优先级的进程{if(pcblist[j]。

state==’R')break;}if(pcblist[0]。

state==’R')//修改当前运行的进程的各项参数{pcblist[j]。

pri=pcblist[j]。

pri-1;pcblist[j]。

runtime=pcblist[j].runtime—1;printf("%s",&pcblist[j].ID);if(pcblist[j]。

runtime==0){pcblist[j]。

state='F’;fnum++;}}show();}}int main()//主函数{chushihua();show();run();return 0;}五、上机实验所用平台及相关软件上机平台:Windows 7 +DEV—C++六、运行结果Q1—Q5分别是12345,经运行的顺序为Q2Q2Q2Q3Q3Q1Q1Q4Q1Q5Q5Q1Q1Q5Q5测试结果正确无误七、实验心得运用优先级调度算法,最根本的问题在于挑选优先级最高的就绪状态的进程,故而本程序采用符号fnum对已完成的程序数目进行计数,并采用冒牌排序法挑选出优先级最高的就绪状态的进程将之运行并输出.经过本次试验,我更深的理解了操作系统按优先级的调度过程,我会继续努力深入学习.实习二主存空间的分配和回收一、实验内容主存储器空间的分配和回收.二、实习目的通过本实习帮助理解在不同的存储管理方式下应怎样进行存储空间的分配和回收.三、实习题目可变分区管理方式下采用首次适应算法实现主存分配和回收四、实习内容1。

设计思想(1)可变分区方式是按作业需要的主存空间大小来分割分区的。

当要装入一个作业时,根据作业需要的主存容量查看是否有足够的空闲空间,若有,则按需分配,否则,作业无法装入.假定内存大小为128K,空闲区说明表格式为:·起始地址-—指出空闲区的起始地址;·长度——一个连续空闲区的长度;·状态——有两种状态,一种是“未分配"状态;另一种是“空表目"状态,表示该表项目前没有使用。

(2)采用首次适应算法分配回收内存空间。

运行时,输入一系列分配请求和回收请求。

要求能接受来自键盘的空间申请及释放请求,能显示分区分配及回收后的内存布局情况.2.上机代码#include <stdio.h>#include <stdlib.h〉#include <string。

h>const int CANTUSE = 0;const int CANUSE=1;const int MSIZE = 128;//内存分区struct MZone{//空闲区起始地址int begin_addr;//一个连续空闲区的长度int length;//状态int state;//内存中任务名char task_name[32];//指向下一个空闲分区struct MZone *next;};//内存头指针struct MZone *Mhead = NULL;//showmemory函数,显示当前内存分配情况void showmemory(){struct MZone *Mpoint = Mhead;printf("内存的使用情况\n”);printf("beginaddr\tlength\tstate\ttask\n");while( NULL!=Mpoint){printf("%dk\t\t”,Mpoint—〉begin_addr);printf(”%dk\t”,Mpoint-〉length);if(Mpoint—〉state==CANTUSE)printf("CANTUSE\t");elseprintf(”free\t”);printf(”%s\n”,Mpoint—>task_name);Mpoint = Mpoint-〉next;}system("pause”);}//Minsert函数,功能插入任务到空闲分区int Minsert(struct MZone*Mnew){struct MZone *Zinsert = Mhead;while(Zinsert—〉length<Mnew—〉length ||!Zinsert—〉state) {if( NULL!=Zinsert—〉next ){Zinsert = Zinsert—〉next;}else{Zinsert = Zinsert—〉next;break;}}if(NULL==Zinsert ){return 0;}if( MSIZE == Zinsert—〉begin_addr+Mnew->length ){Zinsert—>state = CANTUSE;strcpy(Zinsert->task_name ,Mnew-〉task_name);Zinsert—>next = NULL;return 1;}else{strcpy(Zinsert—〉task_name ,Mnew—>task_name);Zinsert—〉length = Mnew->length;struct MZone *Ztail = (struct MZone *)malloc(sizeof(struct MZone));Ztail—〉next=Zinsert—〉next;Zinsert->next = Ztail;Zinsert—〉state = CANTUSE;memset(Ztail, 0, sizeof(char)*32 );Ztail-〉begin_addr = Zinsert-〉begin_addr + Mnew—〉length;Ztail-〉state = 1;if(Ztail—〉next==NULL)Ztail-〉length =MSIZE-Ztail—>begin_addr;elseZtail—〉length =Ztail—>next-〉begin_addr-Ztail—>begin_addr;return 1;}}//memoallocate函数,用于分配内存void memoallocate(void){struct MZone *Mnew = (struct MZone*)malloc(sizeof(struct MZone));printf(”输入要分配内存大小(kb):\n”);scanf(”%d”,&Mnew—〉length);printf("输入任务名:\n");scanf(”%s",&Mnew—〉task_name);Minsert(Mnew)?printf(”分配内存成功\n"):printf("没有符合大小的空闲分区,内存分配失败.\n”);system(”pause”);free(Mnew);}//Mreturn函数,功能回收内存int Mreturn(char taskname[]){struct MZone *front = NULL;struct MZone *position = Mhead;struct MZone *tail = Mhead—>next;while(0!=strcmp(position-〉task_name,taskname) ){front = position;if(NULL!=position—〉next ){position = position—〉next;}else{position = NULL;break;}tail = position-〉next;}if(NULL==position ){printf(”内存中没有此任务!”);}else{if(NULL!=tail&&NULL!=front ){if(front—>state&&tail—〉state ){front—〉length = front-〉length + position—>length + tail->length;front—>next = tail—〉next;free(position);free(tail);}if(front->state&&!tail->state ){front-〉length = front->length + position—〉length;front—>next = position-〉next;free(position);}if( !front-〉state&&tail-〉state ){position—〉length = position->length + tail—>length;memset(position—〉task_name, 0,sizeof(char)*32 ); position-〉next = tail->next;position-〉state = 1;free(tail);}if( !front—>state&&!tail-〉state ){memset(position—>task_name, 0,sizeof(char)*32 ); position—〉state = 1;}}if( NULL!=tail&&NULL==front ){if(!tail—>state ){memset( position->task_name,0,sizeof(char)*32 ); position—〉state = 1;}else{memset(position-〉task_name, 0, sizeof(char)*32 );position-〉length = position—>length + tail-〉length; position—>next = NULL;position->state=1;free(tail);}}if( NULL==tail&&NULL!=front ){if(front->state){front-〉length = front->length + position—〉length; front—>next = NULL;free(position);}else{memset( position—>task_name, 0,sizeof(char)*32 );position->state = 1;}}if( NULL==tail&&NULL==front ){memset( position—〉task_name, 0,sizeof(char)*32 );position—〉state = 1;}printf("内存回收成功!\n”);}}//memoreturn函数,用于回收内存void memoreturn(){char tname[32];printf(”输入要收回的任务名\n”);scanf(”%s",&tname);Mreturn(tname);system(”pause");}int main(){int func_ = 0;//初始化MheadMhead = (struct MZone*)malloc(sizeof(struct MZone));Mhead->begin_addr = 0;Mhead-〉length = MSIZE;Mhead-〉state = 1;memset(Mhead-〉task_name,0,sizeof(char)*32 );Mhead—〉next = NULL;while( 1 ){printf("******************首次适应算法实现主存分配和回收系统(内存MSIZE)***************”);printf("|1:查看内存分配情况\n”);printf("|2:申请分配内存\n”);printf("|3:申请回收内存\n");printf(”|4:退出程序\n”);printf(”********************************************************************************”);scanf("%d”,&func_);switch( func_ ){case 1 :showmemory();break;case 2 :memoallocate();break;case 3 :memoreturn();break;case 4 :return 1;}system("cls");}}五、上机实验所用平台及相关软件上机平台:Windows 7 + DEV—C++六、运行结果依次建立进程1 2 3均分配10个内存单元,并进行重命名和超范围测试,并成功。

相关文档
最新文档