加载并执行时,可执行文件是否被装入到物理内存并把执行权交给操作系统?
时间: 2023-06-24 13:05:54 浏览: 170
是的,加载并执行时,可执行文件通常会被装入到物理内存中,并且操作系统会将执行权交给该程序。在操作系统内部,当一个进程被创建时,操作系统会为该进程分配一定的内存空间作为其虚拟地址空间,然后将该进程的可执行文件加载到该虚拟地址空间中。当该进程被调度执行时,CPU会将执行权交给该进程的起始代码位置,让该进程开始执行。在执行过程中,操作系统会根据需要将进程所需的数据和代码从虚拟地址空间中映射到物理内存中,并保证进程之间的内存隔离性和安全性。
相关问题
操作系统什么时候把代码段和数据段装入内存
在程序运行之前,操作系统会将程序的代码段和数据段从磁盘中加载到内存中。这个过程称为程序加载。程序加载通常发生在以下几种情况下:
1. 程序启动时:当用户启动一个程序时,操作系统会将程序的代码段和数据段从磁盘中加载到内存中,并为程序分配一定的内存空间。
2. 程序创建子进程时:当程序创建一个子进程时,操作系统会将子进程的代码段和数据段从磁盘中加载到内存中,并为子进程分配一定的内存空间。
3. 程序执行动态链接库时:当程序执行一个动态链接库时,操作系统会将动态链接库的代码段和数据段从磁盘中加载到内存中,并将其链接到程序的代码段和数据段中。
在上述情况下,操作系统会根据程序的需要,将代码段和数据段装入内存,并分配一定的内存空间。这样程序就可以在内存中运行,并访问自己的代码段和数据段。当程序不再需要内存空间时,操作系统会将其释放,并将代码段和数据段从内存中卸载,以释放内存空间。
计算机开机后,操作系统最终被加载到哪里
当计算机启动时,首先由BIOS(Basic Input/Output System,基本输入/输出系统)进行硬件自检(POST),然后读取启动设备(通常是硬盘)上的引导扇区(boot sector),将引导扇区中的引导加载程序(boot loader)装入内存,并执行引导加载程序。引导加载程序负责加载操作系统的核心代码到内存中,并将控制权交给操作系统,让操作系统接管计算机的控制。
操作系统核心代码通常被存储在硬盘上的特定分区或文件系统中,引导加载程序会将核心代码从硬盘读取到内存中特定的位置,然后跳转到这个位置开始执行操作系统的初始化代码,完成操作系统的加载和初始化。在Linux系统中,操作系统核心代码通常存储在/boot目录下的vmlinuz文件中,而在Windows系统中则通常存储在C:\Windows\System32\ntoskrnl.exe文件中。
因此,操作系统最终被加载到计算机内存中,等待用户和应用程序的调用。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)