news 2026/4/2 6:52:25

计算机软件按功能分为两大类:系统软件和应用软件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
计算机软件按功能分为两大类:系统软件和应用软件

内容解读如下:

计算机软件按功能分为两大类:系统软件和应用软件。

  • 系统软件是计算机运行的基础,主要作用是管理和协调硬件资源、为应用软件提供运行环境。其核心是操作系统,还包括语言处理程序(如编译器、解释器)等。操作系统负责调度 CPU、管理内存、控制外设等任务,是软硬件之间的桥梁。
  • 应用软件则是为满足用户具体需求而设计的程序,例如 CAD(计算机辅助设计)、Word 文字处理、浏览器等,它们依赖系统软件提供的支持来运行。

操作系统的核心概念包括:

  • 资源管理对象:传统上包括硬件资源(CPU、内存、磁盘、I/O 设备)和软件资源(文件、程序、数据结构);现代操作系统还扩展至对传感器、能源(如电池管理)、网络带宽等新型资源的管理。
  • 定义:操作系统是一组控制程序执行、组织和管理计算机系统中所有软硬件资源的系统软件,为用户提供一个方便、高效的工作环境和接口。
  • 作用
    1. 高效资源管理:通过合理的调度策略(如进程调度、虚拟内存技术),提高系统吞吐量和资源利用率;
    2. 改善人机交互:提供图形界面(GUI)或命令行界面(CLI),使用户无需了解底层机器语言(如二进制代码)即可操作计算机。

拓展补充说明
操作系统如同计算机系统的“管家”,统筹全局。其核心功能如 CPU 调度、存储管理、文件系统和设备控制,直接决定系统性能与稳定性。主流操作系统如 Windows(注重兼容性与易用性)、Linux(开源、灵活、多用于服务器)、macOS(基于 Unix,强调用户体验与安全)在实现细节和界面风格上有差异,但根本目标一致——优化资源利用、简化用户操作。

# 示例:模拟简单操作系统中的进程调度(先来先服务 FCFS)classProcess:def__init__(self,name,arrival_time,burst_time):self.name=name self.arrival_time=arrival_time self.burst_time=burst_timedeffcfs_scheduling(processes):# 按到达时间排序sorted_processes=sorted(processes,key=lambdap:p.arrival_time)current_time=0forprocessinsorted_processes:ifcurrent_time<process.arrival_time:current_time=process.arrival_timeprint(f"运行进程{process.name},开始时间:{current_time}")current_time+=process.burst_timereturn"调度完成"# 示例使用p1=Process("P1",0,5)p2=Process("P2",2,3)p3=Process("P3",4,1)fcfs_scheduling([p1,p2,p3])

操作系统通过进程调度器(Scheduler)实现 CPU 的进程调度,其核心目标是合理分配 CPU 时间给多个并发进程或线程,以提高系统效率、响应速度和公平性。调度由操作系统的内核模块完成,主要依赖进程控制块(PCB)记录每个进程的状态、优先级、CPU 使用时间等信息,并根据特定算法选择下一个执行的进程。

CPU 进程调度的实现机制:

  1. 就绪队列管理:所有已准备好运行但尚未获得 CPU 的进程存放在就绪队列中。
  2. 上下文切换:当调度器决定从一个进程切换到另一个时,保存当前进程的运行状态(寄存器值、程序计数器等),恢复新进程的状态。
  3. 中断与系统调用触发调度
    • 时钟中断:定期触发,判断是否需要重新调度(时间片用完);
    • I/O 请求:进程等待输入输出时主动让出 CPU;
    • 进程终止或阻塞:触发调度新进程。

常见的 CPU 调度算法:

算法描述特点
先来先服务(FCFS, First-Come-First-Served)按照进程到达顺序排队执行简单易实现,但可能导致“长进程阻塞短进程”,平均等待时间较长
最短作业优先(SJF, Shortest Job First)优先执行预计运行时间最短的进程可最小化平均等待时间,但难以预知运行时间,可能造成饥饿
最短剩余时间优先(SRTF)SJF 的抢占式版本,始终运行剩余时间最短的进程响应更快,但频繁上下文切换影响性能
时间片轮转(RR, Round Robin)每个进程分配固定时间片(如 10ms),轮流执行公平性强,适合交互式系统;时间片过小开销大,过大退化为 FCFS
优先级调度根据进程优先级高低进行调度(可静态或动态设定)灵活,可用于实时系统;低优先级进程可能出现“饥饿”现象
多级反馈队列(MLFQ)将就绪队列分为多个层级,不同队列采用不同调度策略(如 RR + 优先级)综合性能好,兼顾响应时间和吞吐量,现代操作系统常用(如 Linux)
# 示例:模拟时间片轮转调度(Round Robin)fromcollectionsimportdequedefround_robin_scheduling(processes,time_slice):ready_queue=deque(processes)# 使用双端队列模拟就绪队列current_time=0whileready_queue:process=ready_queue.popleft()print(f"运行{process['name']},当前时间:{current_time}")ifprocess['burst_time']<=time_slice:# 进程执行完毕current_time+=process['burst_time']print(f"进程{process['name']}完成于时间{current_time}")else:# 执行一个时间片后放回队尾current_time+=time_slice process['burst_time']-=time_slice ready_queue.append(process)print(f"进程{process['name']}时间片用完,剩余时间:{process['burst_time']}")# 示例使用p1={'name':'P1','arrival_time':0,'burst_time':8}p2={'name':'P2','arrival_time':1,'burst_time':4}p3={'name':'P3','arrival_time':2,'burst_time':9}round_robin_scheduling([p1,p2,p3],time_slice=3)

⚙️ 实际操作系统(如 Linux)结合多种算法动态调整,例如 CFS(完全公平调度器)使用红黑树维护虚拟运行时间,实现近似公平的调度。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/1 21:50:20

深度测评!本科生必用8个AI论文平台:开题报告与文献综述全解析

深度测评&#xff01;本科生必用8个AI论文平台&#xff1a;开题报告与文献综述全解析 为什么需要一份权威的AI论文平台测评 随着人工智能技术在学术领域的广泛应用&#xff0c;越来越多的本科生开始依赖AI工具进行论文写作、开题报告撰写以及文献综述整理。然而&#xff0c;面对…

作者头像 李华
网站建设 2026/3/27 16:26:02

公共交通安全提示:地铁、公交到站语音自动播报

公共交通安全提示&#xff1a;地铁、公交到站语音自动播报 在早晚高峰的地铁车厢里&#xff0c;一句清晰、亲切的“下一站&#xff1a;东单&#xff0c;开左侧车门”往往能让人瞬间安心。然而&#xff0c;你是否曾因播音口音过重听不清站名&#xff1f;是否遇到过换乘信息陈旧导…

作者头像 李华
网站建设 2026/3/28 19:11:00

用户权限管理系统:多租户环境下隔离GLM-TTS资源

用户权限管理系统&#xff1a;多租户环境下隔离GLM-TTS资源 在AI语音合成服务日益普及的今天&#xff0c;越来越多开发者基于开源大模型&#xff08;如GLM-TTS&#xff09;搭建Web界面&#xff0c;供用户在线生成高质量语音。然而&#xff0c;当多个用户共享同一套系统资源时&a…

作者头像 李华
网站建设 2026/4/1 7:22:02

GDPR合规性检查:在欧洲市场推广GLM-TTS需注意的问题

GDPR合规性检查&#xff1a;在欧洲市场推广GLM-TTS需注意的问题 在智能语音技术飞速发展的今天&#xff0c;用户对个性化、高自然度的语音合成体验提出了更高要求。像GLM-TTS这样具备零样本语音克隆能力的模型&#xff0c;仅凭几秒音频就能还原说话人音色&#xff0c;正在被广泛…

作者头像 李华
网站建设 2026/3/27 7:09:14

对USB USB_SETUP_REQ 的理解

struct USB_SETUP_REQ { 2 uint8_t bmRequestType; // 方向 类型 接收者 3 uint8_t bRequest; // 请求编号&#xff08;如 0x03 SET_FEATURE&#xff09; 4 uint16_t wValue; 5 uint16_t wIndex; 6 uint16_t wLength; 7}; &#x1f9e9; 二、USB_SETU…

作者头像 李华