美文网首页
鼠标点击一个网页,操作系统做了什么

鼠标点击一个网页,操作系统做了什么

作者: 加油11dd23 | 来源:发表于2020-07-22 09:48 被阅读0次

北大信科计算机系面试时问到了这个问题,没答出来。后来了解才发现这个问题几乎涉及到了操作系统的所有功能

一、双击运行软件,触动了哪些硬件呢

1、 鼠标和键盘

2、屏幕

无论是显示器还是显卡,这里都有个“坐标”的概念,也就是说,什么图像在哪个坐标,都是定义好了才画上去的。本来在某个坐标画了一个鼠标箭头,当接到鼠标移动的事件之后,你应该按相同的方向,按照一定的比例(鼠标灵敏度),在屏幕的某个坐标再画一个鼠标箭头。

3、输入设备驱动

有时候新插上一个鼠标的时候,会弹出一个通知你安装驱动,对于操作系统来讲,输入设备会发送一个中断。

4、输出设备驱动

显卡会有显卡驱动,在操作系统中称为输出设备驱动

二、从点击程序,窥探OS全貌

“在桌面上点击QQ图标”

(一)、首先,鼠标双击会触发一个中断。

在操作系统里面就是调用中断处理函数。操作系统发现双击的是一个图标,就明白了用户的原始诉求,准备运行QQ和别人聊天。

(二)、运行QQ。

因为将来的一段时间,用户要一直和QQ进行交互。这一块包含以下部分

1、文件管理系统【程序应该怎么做,做什么】

对QQ这个程序来说,它能做哪些事情,每个事情怎么做,先做啥后做啥,都已经作为程序逻辑写在程序里面,并且编译成为二进制了。

电脑上的程序有很多,它们都以二进制文件的形式保存在硬盘上。硬盘是个物理设备,要按照规定格式化成为文件系统,才能存放这些程序。文件系统需要一个系统进行统一管理,称为文件管理子系统(File Management Subsystem)。

2、进程与程序

当操作系统拿到QQ的二进制执行文件的时候,就可以运行这个文件了。

QQ的二进制文件是静态的,称为程序(Program),

运行起来的QQ,是不断进行的,称为进程(Process)。

3、系统调用

任何一个程序要想运行起来,就需要调用系统调用,创建进程。

4、进程管理系统

在操作系统中,进程的执行也需要分配CPU进行执行,也就是按照程序里面的二进制代码一行一行地执行。

于是,为了管理进程,我们还需要一个进程管理子系统(Process Management Subsystem)。如果运行的进程很多,则一个CPU会并发运行多个进程,也就需要CPU的调度能力了。

5、 内存管理系统

在操作系统中,不同的进程有不同的内存空间,但是整个电脑内存就这么点儿,所以需要统一的管理和分配,这就需要内存管理子系统(Memory Management Subsystem)。

如果想直观地了解QQ如何使用CPU和内存,可以打开任务管理器,你就能看到QQ这个进程耗费的CPU和内存。

QQ启动之后,有一部分代码会在显示器上画一个对话框,并且将键盘的焦点放在了输入框里面。CPU根据这些指令,就会告知显卡驱动程序,将这个对话框画出来。

于是使用QQ的用户就会很开心地发现,他能和别人开始聊天了。

6、当用户通过键盘噼里啪啦打字的时候,键盘也是输入设备,也会触发中断,通知相应的输入设备驱动程序。

对于QQ来讲,由于键盘闪啊闪的焦点在QQ这个对话框上,因而操作系统知道,这个事件是给这个进程的。QQ的代码里面肯定有遇到这种事件如何处理的代码,就会执行。一般是记录下客户的输入,并且告知显卡驱动程序,在那个地方画一个“a”。显卡画完了,客户看到了,就觉得自己的输入成功了。

当用户输入完毕之后,回车一下,还是会通过键盘驱动程序告诉操作系统,操作系统还是会找到QQ,QQ会将用户的输入发送到网络上。QQ进程是不能直接发送网络包的,需要调用系统调用,内核使用网卡驱动程序进行发送。

相关文章

  • 鼠标点击一个网页,操作系统做了什么

    北大信科计算机系面试时问到了这个问题,没答出来。后来了解才发现这个问题几乎涉及到了操作系统的所有功能 一、双击运行...

  • 💡产品设计日报 18/08/24

    新鲜事 微博网页版做了一个改动,在信息流播放视频的时候,如果鼠标点击视频,会打开全屏 modal,进入全屏模式看视...

  • selenium模拟鼠标点击网页隐藏内容√

    做web自动化时,网页有些隐藏元素无法定位的情况,需要模拟鼠标操作: 鼠标右键点击、双击、移动鼠标到某个元素、鼠标...

  • 事件冒泡 和 事件捕获

    背景知识 什么是事件?直观的说就是网页上发生的事情,大部分是指用户的鼠标动作和键盘动作,如点击、移动鼠标、按下某个...

  • 用js简单生成一个拖拽事件

    模仿windows界面的鼠标拖拽,在网页上生成一个鼠标点击拖拽事件,需要注意:需要设置一个控制的开关,判断为开时正...

  • Web 添加最近很火 有意思的特效

    鼠标点击网页特效 输入框震动效果【Input】 activate-power-mode.js下载地址

  • 网页点击特效 - 鼠标点击浮现爱心特效

    效果演示 >> https://Blog.7Core.CN>> https://blog.7core.cn/thr...

  • 事件

    什么时候改变DOM结构?用JS操作的时机是何时?事件!任何的变化,改变、、、 鼠标点击 触发按键 图片已加载 网页...

  • JS中DOM事件

    我们在浏览网页时,点击鼠标或者按下键盘时,网页需要给我们一个相应的事件,而这种相应事件就是JavaScript与H...

  • 说走就走的旅行

    她已经坐在电脑前整整一个下午了,打开的网页全是毕业旅行攻略。她的右手食指不断点击鼠标,网页不断弹出不知修了...

网友评论

      本文标题:鼠标点击一个网页,操作系统做了什么

      本文链接:https://www.haomeiwen.com/subject/stqzkktx.html