计算机操作系统 - 概述


大家好呀!我是小笙,本章我主要分享计算机操作系统 - 概述学习总结,希望内容对你有所帮助!!

计算机操作系统

概述

为什么要学操作系统?

因为我们要重走从无到有的发现历程!

  • 理解学科中的基本动机、基本方法、里程碑、走过的弯路
    • 基本动机:更快更好地服务更多应用
    • 基本方法:"Building Abstractions " (构建抽象)
    • 里程碑:UNX,Linux…
  • 最终目的:应用、创新、革命

到底什么是操作系统?

计算机层次结构

操作系统是软件和硬件之间的桥梁

image-20250312080507350
用户视角

直接提供给用户最直接的使用是图形用户界面 GUI,同时也可以使用命令接口来调用,例如 windows 系统里面的 CMD 命令窗口

应用程序视角

换句话说,用应用程序的视角去看待操作系统,可以理解为有一类软件负责让程序运行变得容易(甚至允许你同时运行多个程序),允许程序共享内存,让程序能够与设备交互,以及其他类似的有趣的工作,这些软件称为操作系统

那什么是程序?程序又是怎么执行的?

无情的、执行指令的状态机

  • 从 M[PC] 取出一条指令
  • 执行它
  • 循环往复
硬件视角

操作系统作为计算机硬件的核心调度者,直接管理底层物理资源并构建硬件抽象层

硬件抽象层也可以称为硬件的虚拟化,也就是说,操作系统将物理资源(如处理器、内存或磁盘)转换为更通用、更强大且更易于使用的虚拟形式。例如,文件系统将磁盘块抽象为连续字节流,屏蔽存储介质差异

因此,我们有时将操作系统称为虚拟机

操作系统的特征

  • 理论视角:四大特征(并发、共享、虚拟、异步)是经典答案
  • 工程视角虚拟化、并发、持久性更贴近模块化设计

下文主要讲述工程视角下的操作系统三大特征

虚拟化(Virtualization)

虚拟化是操作系统将物理资源(CPU、内存、磁盘)抽象为更易用的逻辑形式的核心技术,使得每个进程或用户感觉独占资源

  • CPU虚拟化:通过进程调度算法(如时间片轮转、多级反馈队列)将单核CPU分割为多个虚拟CPU,每个进程获得“独占CPU”的假象

    #include <stdio.h>
    #include <unistd.h>
    
    // CPU虚拟化代码示例
    int main() {
         
         
        pid_t pid = fork();  // 创建子进程
        if (pid == 0) {
         
               // 子进程执行逻辑
            for (int i=0; i<3; i++) {
         
         
                printf("Child process running (PID=%d)\n", getpid());
                sleep(1);
            }
        } else {
         
                     // 父进程执行逻辑
            for (int i=0; i<3; i++) {
         
         
                printf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗念笙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值