Windows操作系统中CreateThread函数创建线程详解

需积分: 50 0 下载量 49 浏览量 更新于2024-08-22 收藏 2.44MB PPT 举报
"调用CreateThread函数创建线程-操作系统课件" 这篇课件主要介绍了在Windows操作系统中如何通过调用`CreateThread`函数来创建线程。创建线程是多任务并发执行的基础,是操作系统中重要的并发控制机制。以下是详细的知识点: 1. **线程创建步骤**: - 首先,在进程的地址空间内为新线程创建用户态堆栈,这是线程执行时保存局部变量和函数调用上下文的地方。 - 接着,初始化线程描述表(Thread Control Block,TCB),这是一个数据结构,包含了线程的状态、优先级等信息。 - 然后,调用`NtCreateThread`内核函数,这个函数会执行一系列操作,如增加进程中的线程计数,创建并初始化执行体线程块,分配线程ID,分配线程的内核堆栈,设置线程环境块(Thread Environment Block,TEB),这包含了线程特有的信息,如当前的权限、安全属性等。 - 设置线程的起始地址,通常是用户指定的`WIN32`起始地址,这是线程开始执行的入口点。 - 初始化`KTHREAD`块,这是内核模式下的线程表示,包含线程的调度信息。 - 设置指向进程访问令牌的指针,以控制线程的访问权限。 - 最后,通知Windows子系统新线程已创建,新线程被置为准备态,调用`ResumeThread`函数激活线程,使其进入就绪队列等待调度执行。 2. **操作系统基础**: - 操作系统是计算机系统的核心软件,负责管理硬件资源,提供用户接口,控制程序执行,提供各种服务,并优化系统效率。 - 先修课程包括微机原理与接口、数据结构和计算机组织与体系结构,这些知识为理解操作系统奠定了基础。 - 本课程考核方式为笔试占70%,平时成绩占30%,并有专门的答疑时间以帮助学生解决学习中遇到的问题。 3. **操作系统的目标**: - 方便用户使用,通过提供图形用户界面和其他用户友好工具简化操作。 - 扩大机器功能,通过多任务、多线程等机制,使得单一硬件可以同时执行多个任务。 - 管理系统资源,包括内存、CPU时间、磁盘空间等,确保资源的有效利用。 - 提高系统效率,通过调度策略优化资源分配,减少等待时间和资源冲突。 - 构筑开放环境,支持不同软硬件平台的兼容性和可扩展性。 4. **计算机系统的层次结构**: - 计算机系统通常由用户层、应用层、系统程序层、操作系统层和硬件层构成。 - 用户通过应用程序与操作系统交互,操作系统再调用底层硬件资源实现功能。 创建线程是操作系统实现并发处理的关键,而操作系统则是连接用户与硬件的桥梁,管理和协调整个计算机系统的运行。通过对`CreateThread`函数的深入理解,我们可以更好地掌握操作系统如何实现线程管理和并发控制。