【Windows】操作系统之任务管理器(第一篇)
一、操作系统简介
Windows操作系统是由微软公司(Microsoft)开发的一款图形操作系统,它以其强大的功能和广泛的用户基础,成为了目前世界上用户使用最多、兼容性最强的操作系统之一。以下是关于Windows操作系统的详细介绍:
一、历史与发展
- 起源:Windows操作系统的历史可以追溯到1983年,当时微软推出了第一个版本Windows 1.0。随着时间的推移,Windows系统经历了多个版本的迭代和发展,逐渐成为了计算机领域的主导操作系统。
- 重要版本:Windows系统的主要版本包括Windows XP、Windows 7、Windows 8、Windows 10以及最新的Windows 11等。每个版本都引入了新的功能和改进,以满足不同用户的需求。
二、主要功能
Windows操作系统具有多种核心功能,这些功能共同构成了其强大的计算机使用体验:
- 处理机管理:负责处理中断事件、处理器调度等,确保计算机能够高效地运行多个任务。
- 存储管理:管理存储器资源,为多道程序运行提供支撑,包括存储分配、存储共享、存储保护和存储扩充等功能。
- 设备管理:管理各类外围设备,完成用户提出的I/O请求,提高I/O设备的利用率。
- 文件管理:对系统的信息资源进行管理,实现文件的共享、保护和保密,保证文件的安全性。
- 网络与通信管理:支持多协议标准,如TCP/IP,提供Internet连接和网络管理功能。
- 用户接口:提供友好的用户接口,包括程序接口、命令接口和图形接口,方便用户与系统进行交互。
三、特点与优势
- 易用性:Windows操作系统具有直观的图形用户界面(GUI),易于理解和使用。
- 多任务处理能力:支持同时运行多个应用程序,提高工作效率。
- 安全性:具有强大的安全特性,如账户控制、权限控制、文件安全等,保护用户数据和设备安全。
- 稳定性:经过不断优化和改进,Windows操作系统具有很好的稳定性,能够减少崩溃和故障的发生。
- 网络支持:支持多协议标准,方便用户进行Internet连接和网络管理。
- 自动更新:提供定期更新服务,不断改进功能和修复故障,提升用户体验。
操作系统是硬件上面第一层软件,直接与硬件交流,在操作系统中安装了很多的软件,也就是所谓的程序,程序是静态的指令。它只占系统磁盘的空间。执行以后,变成进程,占系统内存。
二、程序如何变成进程?
程序的编译过程通常包括四个主要阶段:预处理(Preprocessing)、编译(Compilation)、汇编(Assembly)和链接(Linking)。下面将详细解释每个阶段的作用和主要任务。
1. 预处理(Preprocessing)
作用:
预处理是编译过程的第一步,它主要处理源代码中的预处理指令(如#include、#define等),并准备源代码以便后续的编译阶段。
主要任务:
- 宏定义展开:将所有的#define删除,并展开所有的宏定义。
- 处理预编译指令:如#if、#elif、#else、#endif等条件编译指令。
- 头文件包含:处理#include预编译指令,将被包含的文件插入到预编译指令的位置。
- 删除注释:删除所有的注释。
- 添加行号信息:添加行号信息、文件名标识,便于调试。
- 保留#pragma指令:因为在编写程序时,经常要用到#pragma指令来设定编译的状态或指示编译器完成一些特定的动作。
示例:
使用GCC编译器时,可以通过gcc -E main.c -o main.i
命令生成预处理后的文件(.i文件)。
2. 编译(Compilation)
作用:
编译是将预处理后的源代码转换成汇编代码的过程。
主要任务:
- 词法分析:将源代码字符串分割成一系列的标记(tokens)。
- 语法分析:根据语言的语法规则,将标记组织成语法树(或抽象语法树)。
- 语义分析:检查语法树的语义正确性,并进行类型检查等。
- 中间代码生成:从语法树生成中间代码,便于后续的优化和生成目标代码。
- 目标代码生成:将中间代码转换成特定平台的汇编代码。
示例:
使用GCC编译器时,可以通过gcc -S main.i -o main.s
命令生成汇编代码文件(.s文件)。
3. 汇编(Assembly)
作用:
汇编是将汇编代码转换成机器码(二进制指令)的过程。
主要任务:
- 指令翻译:根据汇编指令和特定平台的规则,将汇编指令翻译成二进制形式的机器码。
- 符号表生成:生成符号表,其中包含了程序中使用的变量、函数等的地址信息。
- 生成目标文件:将翻译后的机器码和符号表等信息打包成目标文件(.o文件或.obj文件)。
示例:
使用GCC编译器时,可以通过gcc -c main.s -o main.o
命令生成目标文件(.o文件)。
4. 链接(Linking)
作用:
链接是将多个目标文件以及所需的库文件合并成一个可执行文件的过程。
主要任务:
- 符号解析:解析目标文件中的符号引用,确定每个符号的实际地址。
- 重定位:根据符号的实际地址,修改目标文件中相关的引用地址。
- 库文件合并:将程序中用到的库文件中的代码和数据合并到可执行文件中。
- 生成可执行文件:最终生成一个可以在特定平台上运行的可执行文件。
示例:
使用GCC编译器时,可以通过gcc main.o -o main
命令将目标文件链接成可执行文件(main)。
综上所述,程序的编译过程是一个复杂且系统的过程,它涉及多个阶段和多个方面的知识和技术。通过这个过程,高级语言编写的源代码被转换成计算机可以直接执行的机器码。
三、应用 任务管理器
widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <windows.h>
#include <tlhelp32.h>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();
public:void showProcess();private slots:void on_pushButton_clicked();private:Ui::Widget *ui;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//显示所有的进程showProcess();}Widget::~Widget()
{delete ui;
}void Widget::showProcess()
{//显示所有的进程PROCESSENTRY32 pe = {sizeof(PROCESSENTRY32)};//1.获取操作系统的进程的链表,快照HANDLE hsnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);if( INVALID_HANDLE_VALUE == hsnapShot)return;//2.获取链表的头bool bflag = Process32First(hsnapShot,&pe);//Qt 垃圾自动回收机制---- 对象树QString str;int i =0;while(bflag){//进程名称str = QString::fromWCharArray(pe.szExeFile);ui->tableWidget->setItem(i,0,new QTableWidgetItem(str));//进程idstr = QString::number(pe.th32ProcessID);ui->tableWidget->setItem(i,1,new QTableWidgetItem(str));//线程数str = QString::number(pe.cntThreads);ui->tableWidget->setItem(i,2,new QTableWidgetItem(str));//3.遍历链表bflag = Process32Next(hsnapShot,&pe);++i;}}void Widget::on_pushButton_clicked()
{//获取进程idint nRow = ui->tableWidget->currentRow();if(nRow == -1)return;QTableWidgetItem *pitem = ui->tableWidget->item(nRow,1);//获取句柄int nProcessId = pitem->text().toInt();HANDLE hProcess= OpenProcess(PROCESS_TERMINATE,0,nProcessId);//结束进程if(hProcess){TerminateProcess(hProcess,-1);ui->tableWidget->removeRow(nRow);}
}
相关文章:
【Windows】操作系统之任务管理器(第一篇)
一、操作系统简介 Windows操作系统是由微软公司(Microsoft)开发的一款图形操作系统,它以其强大的功能和广泛的用户基础,成为了目前世界上用户使用最多、兼容性最强的操作系统之一。以下是关于Windows操作系统的详细介绍ÿ…...
图同构的必要条件
来源:离散数学...
Django获取request请求中的参数
支持 post put json_str request.body # 属性获取最原始的请求体数据 json_dict json.loads(json_str)# 将原始数据转成字典格式 json_dict.get("key", "默认值") # 获取数据参考 https://blog.csdn.net/user_san/article/details/109654028...
kotlin compose 实现应用内多语言切换(不重新打开App)
1. 示例图 2.具体实现 如何实现上述示例,且不需要重新打开App ①自定义 MainApplication 实现 Application ,定义两个变量: class MainApplication : Application() { object GlobalDpData { var language: String = "" var defaultLanguage: Strin…...
记录些MySQL题集(16)
MySQL 存储过程与触发器 一、初识MySQL的存储过程 Stored Procedure存储过程是数据库系统中一个十分重要的功能,使用存储过程可以大幅度缩短大SQL的响应时间,同时也可以提高数据库编程的灵活性。 存储过程是一组为了完成特定功能的SQL语句集合&#x…...
【算法基础】Dijkstra 算法
定义: g [ i ] [ j ] g[i][j] g[i][j] 表示 v i v_i vi 到 $v_j $的边权重,如果没有连接,则 g [ i ] [ j ] ∞ g[i][j] \infty g[i][j]∞ d i s [ i ] dis[i] dis[i] 表示 v k v_k vk 到节点 v i v_i vi 的最短长度, …...
使用 Flask 3 搭建问答平台(三):注册页面模板渲染
前言 前端文件下载 链接https://pan.baidu.com/s/1Ju5hhhhy5pcUMM7VS3S5YA?pwd6666%C2%A0 知识点 1. 在路由中渲染前端页面 2. 使用 JinJa 2 模板实现前端代码复用 一、auth.py from flask import render_templatebp.route(/register, methods[GET]) def register():re…...
pycharm如何debug for循环里面的错误值
一般debug时,在for循环里面的话,需要自己一步一步点。如果循环几百次那种就比较麻烦。此时可以采用try except的方式来解决 例子如下 #ptyhon debug for循环的代码 num[1,2,3,s,4] ans0 for i in num:try:ansiexcept:print(错误) print(ans) 结果如下&a…...
解决网页中的 video 标签在移动端浏览器(如百度访问网页)视频脱离文档流播放问题
问题现象 部分浏览器视频脱离文档流,滚动时,视频是悬浮出来,在顶部播放 解决方案 添加下列属性,可解决大部分浏览器的脱离文档流的问题 <videowebkit-playsinline""playsInlinex5-playsinlinet7-video-player-t…...
.Net--CLS,CTS,CLI,BCL,FCL
1.什么是CLS? 所以.NET专门为此参考每种语言(例如C# ,VB,F#)并找出了语言间的共性,然后定义了一组规则,开发者都遵守这个规则来编码,那么代码就能被任意.NET平台支持的语言所通用。 而与其说是规则&#x…...
Stable Diffusion:质量高画风清新细节丰富的二次元大模型二次元插图
今天和大家分享一个基于Pony模型训练的二次元模型:二次元插图。关于该模型有4个不同的分支版本。 1.5版本:loar模型,推荐底模型niji-动漫二次元4.5。 xl版本:SDXL模型版本 mix版本:光影减弱,减少SDXL版本…...
数读MEME之争:以太坊获更高价值共识,抢占热点成Solana流量密码
在当前显著的加密牛市中,以太坊和Solana之间的竞争不仅在币价表现上显而易见,生态发展方面也备受关注。特别是在这轮MEME行情中,双方阵营的MEME代币呈现出不同的特点和趋势。 市场表现对比 以太坊的优势: 市场份额和认可度更高&…...
python的with语句
1.with语句的作用 在 Python 中,with 语句用于创建一个上下文管理器,以更简洁和安全的方式管理资源。 其主要优点是可以确保在代码块执行完毕后,相关资源能够被正确释放或清理,即使在代码块内部发生了异常。 以下是一个使用 with…...
Selenium原理深度解析
在自动化测试领域,Selenium无疑是最受欢迎和广泛使用的工具之一。它支持多种浏览器和操作系统,为开发人员和测试人员提供了强大的自动化测试解决方案。本文将深入探讨Selenium的工作原理,包括其架构、核心组件、执行流程以及它在自动化测试中…...
算法复杂度<数据结构 C版>
什么是算法复杂度? 简单来说算法复杂度是用来衡量一个算法的优劣的,一个程序在运行时,对运行时间和运行空间有要求,即时间复杂度和空间复杂度。 目录 什么是算法复杂度? 大O的渐近表达式 时间复杂度示例 空间复杂度…...
【XSS】
文章目录 0x01 简介0x02 XSS Payload用法XSS攻击平台及调试JavaScript 0x03 XSS绕过XSS漏洞防御策略 跨站脚本攻击,Cross Site Script。(重点在于脚本script) 有关XSS可以造成的 危害,见 0x02 XSS Payload用法 分类 反射型、存储…...
Go网络编程-RPC程序设计
gRPC 通信 RPC 介绍 RPC, Remote Procedure Call,远程过程调用。与 HTTP 一致,也是应用层协议。该协议的目标是实现:调用远程过程(方法、函数)就如调用本地方法一致。 如图所示: 说明: Servi…...
Linux 性能优化:轻松入门
文章目录 前言一、磁盘性能优化1、 磁盘 RAID 模式选择2、文件系统优化 二、优化 CPU1、性能监控 :2、进程优先级调整 :3、进程与 CPU 绑定 : 三、优化内存四、网络性能优化1、调整 TCP 缓冲区大小2、修改系统级别的文件描述符的数量3、调整 …...
C++相关概念和易错语法(22)(final、纯虚函数、继承多态难点)
1.final final在继承和多态中都可以使用,在继承中是指不想将自己被继承,在多态中是指不想该函数被重写,比较简单,下面是一些使用例子。 2.纯虚函数 当我们需要抽象一个类的时候,我们就需要用到纯虚函数。所谓抽象的类…...
状态管理的艺术:探索Flutter的Provider库
状态管理的艺术:探索Flutter的Provider库 前言 上一篇文章中,我们详细介绍了 Flutter 应用中的状态管理,以及 StatefulWidget 和 setState 的使用。 本篇我们继续介绍另一个实现状态管理的方式:Provider。 Provider优缺点 基…...
玩转HarmonyOS NEXT之IM应用首页布局
本文从目前流行的垂类市场中,选择即时通讯应用作为典型案例详细介绍HarmonyOS NEXT的各类布局在实际开发中的综合应用。即时通讯应用的核心功能为用户交互,主要包含对话聊天、通讯录,社交圈等交互功能。 应用首页 创建一个包含一列的栅格布…...
GPT-4o大语言模型优化、本地私有化部署、从0-1搭建、智能体构建
原文链接:GPT-4o大语言模型优化、本地私有化部署、从0-1搭建、智能体构建https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247608565&idx3&snd4e9d447efd82e8dd8192f7573886dab&chksmfa826912cdf5e00414e01626b52bab83a96199a6bf69cbbef7f7fe…...
记录些MySQL题集(4)
1、数据库的三范式是什么? 第一范式:列不可再分 第二范式:在第一范式的基础上,要求数据库表中的所有非主键列完全依赖于主键,而不是仅依赖于主键的一部分 第三范式:满足第二范式的基础上,所有…...
pdf提取其中一页怎么操作?提取PDF其中一页的方法
pdf提取其中一页怎么操作?需要从一个PDF文件中提取特定页码的操作通常是在处理文档时常见的需求。这种操作允许用户选择性地获取所需的信息,而不必操作整个文档。通过选择性提取页面,你可以更高效地管理和利用PDF文件的内容,无论是…...
godot使用ws
go服务端 package mainimport ("encoding/json""fmt""github.com/gorilla/websocket""net/http" )var upgrader websocket.Upgrader{ReadBufferSize: 1024,WriteBufferSize: 1024, }// 处理函数 func handleWebSocket(w http.Respo…...
Windows FFmpeg 开发环境搭建
FFmpeg 开发环境搭建 FFmpeg命令行环境搭建使用FFmpeg官方编译的库Windows编译FFmpeg1. 下载[msys2](https://www.msys2.org/#installation)2. 安装完成之后,将安装⽬录下的msys2_shell.cmd中注释掉的 rem set3. 修改pacman 镜像源并安装依赖4. 下载并编译源码 FFmpeg命令行环境…...
链路聚合概述
目录 技术背景: 基本概念: 链路聚合的工作模式: 简介: 1)Manual Load-balance(手动负载分担) 简介: 配置实施: 2)LACP(链路聚合控制协议ÿ…...
【链表】算法题(二) ----- 力扣/牛客
一、链表的回文结构 思路: 找到链表的中间节点,然后逆置链表的后半部分,再一一遍历链表的前半部分和后半部分,判断是是否为回文结构。 快慢指针找到链表的中间节点 slow指针指向的就是中间节点 逆置链表后半部分 逆置链表后半部分…...
合成复用原则
合成复用原则 (Composite Reuse Principle, CRP) 合成复用原则(Composite Reuse Principle, CRP),也被称为组合/聚合复用原则,是面向对象设计中的一条重要原则。它的核心思想是:优先使用对象组合/聚合,而不…...
安卓自带camera hal3 实例README.md翻译
最近,遇到一个这样的问题,临时了解下这个驱动实现架构和特点,翻译如下 V4L2相机HALv3 camera.v4l2库使用视频Linux 2(V4L2)接口实现了camera HAL v3。这使得它在理论上可以与各种设备配合使用,尽管V4L2的…...
百度联盟/网站优化排名首页
MySQL中的索引探究 - 08/05本次分享讲述MySQL的索引原理,不同存储引擎对索引的支持情况。同时探究大家普遍关心的问题:MySQL在哪些操作中会用到索引?InnoDB引擎对索引做了哪些扩展?基于Generated Column的索引有什么用?…...
做网站是做完给钱还是/自己如何制作网页
Regex r new Regex(".*[\\u4e00-\\u9faf].*");r.IsMatch(username)转载于:https://www.cnblogs.com/ZX-LMY/p/5535087.html...
简网 互联 专业wordpress主机/媒体公关
C语言 _ 编辑、调试工具一、GCC编译器1、GNU工具2、GCC简介3、GCC编译器的版本4、gcc所支持后缀名解释5、编译器的主要组件6、GCC的基本用法和选项7、GCC的错误类型及对策8、**GCC编译过程**条件编译二、GDB调试工具1、Gdb调试流程:2、进入代码调试模式后一、GCC编译…...
自媒体专用网站免费/金华关键词优化平台
3.对数字进行全排列 使用itertools.permutations from itertools import permutations data_list permutations([1,2,3,4],2)#对数字1,2,3,4,进行两两组合,等同于全排列 for data in data_list: print(data) 结果 (1, 2) (1, 3) (1, 4) (2, 1) (2, 3) (2,…...
建站工具交流/宁波seo公司推荐
先筛出来1000以内的素数。枚举x^(1/3) 和 y^(1/3)以内的素因子,这样除完以后对于x和y剩下的因子,小的那个的平方必须等于大的。然后判断每个素因数的次数之和是否为3的倍数,并且小的那个次数不小于大的次数的两倍。当然这题是有O(…...
大连住建委网站/百度搜索推广官网
第1章 Linux内核的简介1.1 UnixUnix强大的根本原因Unix很简洁:仅提供几百个系统调用并且有一个非常明确的设计目的;所有东西都被当做文件对待:提供一套系统调用接口—open()、read()、write()、lseek()和close();用C语言编写而成&…...