怎样不花钱做网站,免费网站后台管理模板下载,wordpress 标签挂件,wordpress 伪静态 nginx一、操作系统简介
Windows操作系统是由微软公司#xff08;Microsoft#xff09;开发的一款图形操作系统#xff0c;它以其强大的功能和广泛的用户基础#xff0c;成为了目前世界上用户使用最多、兼容性最强的操作系统之一。以下是关于Windows操作系统的详细介绍#xff…一、操作系统简介
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.hQT_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_Hwidget.cpp
#include widget.h
#include ui_widget.hWidget::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);}
}