操作系统:线程同步和调度

文章目录

  • 线程同步和调度
    • 一、实验目的
    • 二、实验要求与内容、过程与结果
  • 系列文章

线程同步和调度

一、实验目的

通过创建线程、分配线程优先级和终止线程的程序设计和调试操作,进一步熟悉操作系统的线程概念,理解Windows 2000线程的生命周期。
通过对事件、互斥体对象和信号量的了解,加深对Windows 2000线程同步的理解。

二、实验要求与内容、过程与结果

1、运行例程3-1,注意观察运行结果。请回答线程的实际工作在哪个方法中来实现的,并描述程序的功能。

操作系统:线程同步和调度_第1张图片

程序功能:在DoStuff中实现将线程A与B的ID各输出5次。

2、修改例程3-1,创建两个线程MyThred1和MyThred2:线程MyThred1输出10次“A。。。” ,线程MyThred2输出10次“B^^^”。多次运行该程序,并注意观察输出结果是否一样?并回答在程序运行过程中,任务管理器中能看见这2个线程吗?(为了便于任务管理器观察线程的执行,可将循环次数设置大些。)
(1)多次运行该程序,观察到输出结果不一样。
(2)在程序运行过程中,任务管理器中能看见这2个线程。

操作系统:线程同步和调度_第2张图片

3、运行例程3-2,线程A和线程B哪个先运行结束?为什么?将程序中语句:wtA.SetPriority(THREAD_PRI0RITY_L0WEST)
中的参数THREAD_PRI0RITY_L0WEST修改为THREAD_PRIORITY_HIGHEST后,再运行程序,输出结果有何不同?
操作系统:线程同步和调度_第3张图片 操作系统:线程同步和调度_第4张图片

修改前B先完成,因为A的优先级最低;修改后A先完成,因为A的优先级最高。

4、运行例程3-3,线程A和线程B哪个先运行结束?为什么?

操作系统:线程同步和调度_第5张图片

线程A先结束,因为线程B挂起,只有在A执行完毕之后才继续执行。

5、运行例程3-4,写出屏幕中的输出信息,并请描述该程序的功能。

操作系统:线程同步和调度_第6张图片

功能:创建和打开进程间的要发送信号的事件对象。

6、运行例程3-5,请描述该程序的功能。

操作系统:线程同步和调度_第7张图片

功能:使用互斥体来保护共享资源。

7、运行例程3-6,请描述该程序的功能。

操作系统:线程同步和调度_第8张图片

功能:使用信号量来限制活动线程数。

8、编写一个程序,利用信号量来实现多个生产者-消费者问题。
操作系统:线程同步和调度_第9张图片
操作系统:线程同步和调度_第10张图片
操作系统:线程同步和调度_第11张图片

总结:

线程同步和调度是操作系统中非常重要的概念和技术,它们在多线程编程中扮演着重要的角色。在本文中,我们将简单介绍线程同步和调度的概念和实现方法。

一、线程同步

线程同步是指多个线程之间协调执行的过程,控制各个线程执行的顺序,保证它们的执行结果是正确的。线程同步可以防止多个线程同时访问或修改共享变量,从而避免由此产生的不一致性或错误。

常用的线程同步方法有互斥锁、信号量和条件变量。互斥锁是一种独占锁,它保证只有一个线程可以访问共享资源,其他线程则必须等待。信号量是一种计数锁,它维护了一个资源的计数器,线程可以获得或释放这些资源。条件变量则是用于线程的等待和通知机制,它可以让线程在某个条件成立时等待或唤醒。

二、线程调度

线程调度是指操作系统决定哪个线程可以运行的过程。操作系统的调度算法决定了每个线程被分配的处理时间和顺序。调度算法根据一些因素,如线程的优先级、I/O等待和执行时间等来决定每个线程的运行顺序。

常用的调度算法有先来先服务、短作业优先、轮转和多级反馈等。在先来先服务算法中,CPU将分配给最早发出请求的线程。在短作业优先算法中,长时间等待的任务将被延迟,因为较短的任务更容易完成。轮转算法将CPU时间分配给每个线程一定的时间片,每个线程轮流运行,以使所有线程都有机会获得相等的CPU时间。多级反馈算法则为每个线程分配不同的优先级,并将它们放入不同的队列中,以便更好地管理线程的执行。

总之,线程同步和调度是多线程编程的核心概念和技术。了解这些概念和方法,可以帮助程序员更好地编写多线程应用程序,提高程序的并发性和性能。

系列文章

实验 目录 直达链接
实验一 Linux初步 https://want595.blog.csdn.net/article/details/133145097
实验二 进程的控制和通信(Windows2000) https://want595.blog.csdn.net/article/details/133903234
实验三 线程同步和调度 https://want595.blog.csdn.net/article/details/133903419
实验四 单处理机调度 https://want595.blog.csdn.net/article/details/133903537
实验五 银行家算法 https://want595.blog.csdn.net/article/details/133903623
实验六 虚拟存储管理技术 https://want595.blog.csdn.net/article/details/133903701

你可能感兴趣的:(《,操作系统,》,操作系统)