操作系统helloworld
时间: 2023-10-01 21:07:21 浏览: 68
操作系统在执行helloworld程序时,首先会接收到用户的请求。用户可以通过命令行或鼠标双击helloworld程序来告知操作系统要执行该程序。操作系统会根据文件名在磁盘上找到该程序的相关信息,并检查该文件是否为可执行文件。
一旦确认该文件为可执行文件,操作系统会根据程序首部信息确定代码和数据在可执行文件中的位置,并计算出对应的磁盘块地址。为了执行这个程序,操作系统会创建一个新的进程,并将helloworld可执行文件的格式映射到该进程,表示由该进程来执行这个helloworld程序。
接下来,操作系统会将控制权交给调度程序。假设调度程序选中了helloworld程序,操作系统会为helloworld程序设置CPU上下文环境,并跳到程序的开始处准备执行程序。
当执行helloworld程序的第一条指令时,可能会发生缺页异常。这是因为程序在执行之前需要将代码和数据读入内存,而helloworld的代码和数据还未被写入内存,所以会触发硬件机制中的缺页异常,并将控制权交回给操作系统。
操作系统的内存管理模块会分配一页空闲的物理内存,并根据之前计算出的磁盘块地址,将helloworld程序的代码从磁盘读入内存。然后,操作系统会继续执行helloworld程序。
接下来,helloworld程序执行puts函数,该函数是一个系统调用,用于在显示器上显示字符串。由于puts函数是一个系统调用,控制权又回到了操作系统。
操作系统会找到要将字符串送往的显示设备,通常该设备由一个进程控制。操作系统会将要写的字符串送给该进程处理。控制设备的进程会告诉窗口系统要显示字符串,并将字符串转换为像素,然后将像素写入设备的存储映像区。视频硬件将像素转换成显示器可以接收的一组控制数据信号,最后显示器激发液晶屏,我们就可以在屏幕上看到字符串。
综上所述,操作系统在执行helloworld程序时,根据用户的请求找到程序相关信息,创建新进程并将程序映射到该进程,为程序设置CPU上下文环境,处理缺页异常,并将字符串显示在屏幕上。