当前位置:首页 > 教育 >

c语言的学习感受(c语言学习感悟)

来源:原点资讯(www.yd166.com)时间:2024-04-17 10:01:16作者:YD166手机阅读>>

一个学期的《操作系统》课程就要结束了,在这个学期,通过老师的传授和课本以及课下的阅读学习,让我对计算机操作系统的一些实现原理和简单的操作过程有了基本的了解。

在学习操作系统之前,我在前面几个学期计算机导论,计算机组成原理,C语言等课程,这些课程让我了解了计算机硬件如处理器、随机访问存储器、输入输出设备、磁盘驱动器等部件的组成及工作原理,于是我就曾想过自己亲手组装,或者在脑海中虚拟组装一下也可以,把这些互相分离的计算机大部件连接起来,万事俱备,然后通上电,期待着显示器出现想要出现的画面。然而,并非如愿以偿,因为事实上,还缺少了一个重要的部分——软件,更确切的说——操作系统。

经过近乎一个学期的学习,我知道了,操作系统是一个由许多软件构成的庞大的程序集合,它不仅仅单是为用户提供友好界面,更重要的是它还管理着计算机系统的全部硬件资源、软件资源及数据资源,从而使计算机各个组成部件能够顺利高效地、资源最大限度地发挥作用。

当计算机开机后,CPU一加电,通过内存中的硬件系统检测和初始化程序完成后,便调用操作系统引导程序,从此,便将此计算机彻底交由操作系统来控制。操作系统是一个需要在CPU上运行的软件,它可以为其他应用软件提供支持,不过,作为此计算机的主宰,每一种操作系统都对它所管理的操作系统提出了种种的格式上的要求。比如每次我在我的计算机上下载应用软件的时候还要看是否能够兼容我的Windows10。

课堂上老师结合书本,很详细的介绍了操作系统主要工作原理。并发、共享、虚拟、异步,是OS共有的基本特征,它们使计算机能够高效的整合利用计算机资源,其实也是OS设计的基本要求。微内核OS结构是当前普遍一种OS设计。由于操作系统越来越强大、复杂,便只保留OS内核中最基本的部分,其他部分根据模块分层,相互独立,视作为进程来交互信息。

进程是操作系统进行资源分配的基本单位,它的基本信息和运行状态是由进程控制块(PCB)来描述和管理的,即所谓的创建进程和销毁进程,其实都是对PCB的操作。进程和线程是有区别的,比如说,打开一个浏览器,即是创建了一个进程,而浏览器里面有很多线程,如http请求线程、事件响应线程等等。线程的并发执行使得在浏览器中点击一个新链接而发起 http请求时,浏览器还可以响应用户的其它事件。线程和进程的并发执行可以提高系统资源利用率和系统吞吐量。

并发执行的进程之间,必须能够相互协调,即按照一定的规则或时序共享系统资源,那么便引入了进程同步机制。经典的进程同步问题有“生产者——消费者”问题、“读者——写者”问题、“哲学家进餐”问题等。如使用信号量机制实现的生产者消费者问题需要对其进行很多控制,确保共享资源能够互斥有效利用,利用管程,即代表抽象共享资源的数据结构及对其实施操作的一组过程,可以很好的解决资源管理问题。

如果同步问题的处理不当甚至会导致系统死锁,这就需要处理机调度算法来进行资源分配。死锁是指两个以上的进程在执行过程中,因为争夺共享资源而造成的一种互相等待的忙等现象。由于资源是互斥访问的,程序就不能继续运行,这就产生了一种特殊现象死锁。最具代表性的避免死锁算法,是Dijkstra的银行家算法。银行家算法必须保证分配资源前,系统有足够的资源分配给进程,且分配之后,系统是安全状态的。

在先前计算机组成原理课程中,我了解了存储器的组成及工作原理,但是,存储器的管理及虚拟内存技术,使我对存储器有了更进一步了解。虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存进行容量扩充的存储器系统。一个虚拟存储器,采用地址映射,将虚拟地址分成存储页面号和偏移量两个部分。为了保证虚拟存储器最大效率的利用,良好的页面置换算法如最佳置换算法、FIFO算法、LRU算法等,是直接影响到系统性能的重要保证。段页式则在扩展内存的基础上,进一步实现了数据的共享和保护。

《操作系统》是作为我专业的核心课程的,对于它的认知仅仅一学期的时间是不够的。实现一个很简单的操作系统大概也需要六七千行代码实现,而单靠一个人实现一个近乎完美的操作系统几乎是不可能的。所以,我们实验是对OS功能的部分简单模拟实现。

未来我想自己动手写一个简单的操作系统,这需要更加深入的学习汇编语言、计算机组成原理、微机原理及C语言数据结构如链表等方面的知识,同时,也需要阅读其他介绍操作系统的书籍资料。

“师父领进门,修行在个人”,回顾这一个学期的学习,有很大的收获,也有不小的遗憾。接下来,我知道,计算机这个大黑匣子,还有很多东西需要我去学习、去应用、去探索。

,

栏目热文

c语言的学习体会和建议(c语言学习感悟)

c语言的学习体会和建议(c语言学习感悟)

1、各门编程语言都有它存在的理由:不要今天感觉这个过时了,明天感觉那个不实用了。C 语言被创立到现在已经30多年了,不...

2024-04-17 10:24:32查看全文 >>

c语言的学习步骤(c语言的学习建议)

c语言的学习步骤(c语言的学习建议)

hello,大家好,我是 Jackpop,硕士毕业于哈尔滨工业大学,曾在华为、阿里等大厂工作,如果你对升学、就业、技术提...

2024-04-17 09:55:01查看全文 >>

c语言学习的建议和方法(c语言学习方法及路线)

c语言学习的建议和方法(c语言学习方法及路线)

1.把C 当成一门新的语言学习(和C没啥关系!真的。);2.看《Thinking In C 》,不要看《C 变成死...

2024-04-17 10:03:21查看全文 >>

c语言学习心得及感悟(c语言学习心得3000字)

c语言学习心得及感悟(c语言学习心得3000字)

[你是否曾对C语言感到迷茫,不知从何下手?你是否想过,C语言背后的逻辑其实和生活中的许多事物有着异曲同工之妙?]学习C语...

2024-04-17 10:18:01查看全文 >>

学习c语言的收获和总结(c语言初步学习心得)

学习c语言的收获和总结(c语言初步学习心得)

大家好,今天给大家介绍C语言学习心得:我的编程成长之路,文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、...

2024-04-17 09:48:19查看全文 >>

c语言心得体会总结(c语言心得体会2000字)

c语言心得体会总结(c语言心得体会2000字)

对于这个话题,有很多人都做出了比较系统的回答,以及介绍了各种比较系统的学习步骤和方法。但是对于很多初学者来说看完这样的回...

2024-04-17 09:46:02查看全文 >>

c语言学习小结(学习c语言总结经验)

c语言学习小结(学习c语言总结经验)

1.对于ASCII字符,使用一个字节存储,并且该字节的最高位是0;对于中国的字符,使用两个字节存储,并且规定每个字节的最...

2024-04-17 10:24:56查看全文 >>

对c语言学习的收获(学c语言的收获与感受)

对c语言学习的收获(学c语言的收获与感受)

C语言是一种广泛应用于系统编程、嵌入式系统、游戏开发、操作系统等领域的高级编程语言。它是一门功能强大、灵活性高、可移植性...

2024-04-17 09:59:08查看全文 >>

男生未来十大紧缺职业(专科就业前景最好的十大专业)

男生未来十大紧缺职业(专科就业前景最好的十大专业)

适合男生报考且最有前景的十大专业有信息安全、软件工程、信息工程、计算机科学与技术、网络工程、物联网工程专业、电子科学与技...

2024-04-17 09:49:35查看全文 >>

目前就业前景最好的十大专业(未来最吃香的十大行业)

目前就业前景最好的十大专业(未来最吃香的十大行业)

高考十大热门专业盘点:哪个专业就业前景最明朗?据教育部网站信息,2023年全国高考报名人数为1291万。考试结束后的填报...

2024-04-17 10:09:45查看全文 >>

文档排行