应用软件工程师岗位培训课程(常用操作系统).ppt

上传人:wuy****n92 文档编号:91033652 上传时间:2023-05-21 格式:PPT 页数:56 大小:691.50KB
返回 下载 相关 举报
应用软件工程师岗位培训课程(常用操作系统).ppt_第1页
第1页 / 共56页
应用软件工程师岗位培训课程(常用操作系统).ppt_第2页
第2页 / 共56页
点击查看更多>>
资源描述

《应用软件工程师岗位培训课程(常用操作系统).ppt》由会员分享,可在线阅读,更多相关《应用软件工程师岗位培训课程(常用操作系统).ppt(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、常用操作系统常用操作系统钱青海钱青海windows版本及开发工具简介版本及开发工具简介 进程进程 线程线程 线程的建立与退出线程的建立与退出 线程调度线程调度 线程同步线程同步 动态连接库动态连接库 与其它操作系统区别与其它操作系统区别 2windows版本版本Windows1.0Windows是由微软在1983年11月(在Lisa之后,Macintosh之前)宣布,并在两年后(1985年11月)发行。在此后的两年中,紧随着Microsoft Windows早期版本1.0之后,又推出了几种改进版本,以支持国际商业市场,并提供新型视讯显示器和打印机的驱动程序。Windows2.0Windows版

2、本2.0是在1987年11月正式在市场上推出的。该版本对使用者接口做了一些改进。这些改进中最有效的是使用了可重迭式窗口,而Windows 1.0中使用的是并排式窗口。Windows 2.0还增强了键盘和鼠标接口,特别是加入了菜单和对话框。Windows3.xMicrosoft Windows版本3.1是1992年4月发布的,其中包括的几个重要特性是TrueType字体技术(给Windows带来可缩放的轮廓字体)、多媒体(声音和音乐)、对象连结和嵌入(OLE:Object Linking and Embedding)和通用对话框。跟OS/2一样,Windows 3.1只能在保护模式下运作,并且要

3、求至少配置了1MB内存的286或386处理器。Window NT在1993年7月发表的Windows NT是第一个支持Intel 386、486和Pentium微处理器32位保护模式的Windows版本。Windows NT提供32位平坦寻址,并使用32位的指令集。(本章后面我会谈到一些寻址空间的问题)。Windows NT还可以移植到非Intel处理器上,并在几种使用RISC芯片的工作站上执行。3windows版本版本Windows95/98Windows 95是在1995年8月发布的。和Windows NT一样,Windows 95也支持Intel 386或更高等级处理器的32位,但是Wi

4、ndows 95具有需要较少硬件资源的优点。Windows 98在1998年6月发布,具有保护模式。虽然它缺少Windows NT中的某些功能,诸如高安全性和对RISC机器的可移植性等许多加强功能,包括执行效能的提高、更好的硬件支持以及与因特网和全球信息网(WWW)更紧密的结合。Windows ME 2000年9月微软公司发行32位图形操作系统Windows ME,该操作系统是在Windows 95和Windows 98的基础上开发的。Window2000Windows 2000有四个版本:Professional、Server、Advanced Server和Datacenter Serve

5、r。所有版本的Windows 2000都有共同的一些新特征:NTFS5,新的NTFS文件系统;EFS,允许对磁盘上的所有文件进行加密;WDM,增强对硬件的支持。WindowXP2001年10月微软发布了Windows XP,它包括了简化了的Windows 2000的用户安全特性,并整合了防火墙,以用来确保长期以来一直困扰微软的安全问题。WINDOWS 2003 2003年1月发布的Windows2003大量继承了Windows XP的友好操作性和Windows 2000 sever的网络特性,是一个同时适合个人用户和服务器使用的操作系统。Windows 2003完全延续了Windows XP安

6、装时方便、快捷、高效的特点,几乎不需要多少人工参与就可以自动完成硬件的检测、安装、配置等工作。虽然在名称上,Windows 2003又延续了Windows家族的习惯命名法则,但从其提供的各种内置服务以及重新设计的内核程序来说,Windows 2003与Windows 2000/XP有着本质的区别。4windows开发工具开发工具常见的常见的Windows应用程序开发语言和工具应用程序开发语言和工具:Microsoft Visual C+Microsoft Visual Basic Microsoft Visual J+Borland Delphi 5windows版本及开发工具简介版本及开发工

7、具简介 进程进程 线程线程 线程的建立与退出线程的建立与退出 线程调度线程调度 线程同步线程同步 动态连接库动态连接库 与其它操作系统区别与其它操作系统区别 6进程进程进程通常被定义为一个正在运行的程序的实例,它由两个部分组成:操作系统用来管理进程的内核对象。地址空间,它包含所有可执行模块或DLL模块的代码和数据。它还包含动态内存分配的空间。如线程堆栈和堆分配空间。每个进程至少拥有一个线程,来执行进程的地址空间中的代码。7进程句柄和优先级进程句柄和优先级进程的实例句柄加载到进程地址空间的每个可执行文件或DLL文件均被赋予一个独一无二的实例句柄。对于加载资源的函数调用来说,通常都需要该句柄的值。

8、表示进程句柄的两种数据类型:HMODULE与HINSTANCE进程的优先级进程的优先级 8创建进程创建进程创建进程的几种方式:调用ShellExecute函数调用WinExec函数调用Createprocess函数函数原型:HINSTANCE ShellExecute(HWND hwnd,LPCTSTR lpOperation,LPCTSTR lpFile,LPCTSTR lpParameters,LPCTSTR lpDirectory,INT nShowCmd);UINT WinExec(LPCSTR lpCmdLine,UINT uCmdShow);BOOL CreateProcess(L

9、PCTSTR lpApplicationName,LPTSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIBUTES lpThreadAttributes,BOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCTSTR lpCurrentDirectory,LPSTARTUPINFO lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);9终止进程终止进

10、程终止进程运行常用的四种方式:主线程的进入点函数返回进程中的一个线程调用ExitProcess函数一个进程中的线程调用TerminateProcess函数(应该避免使用这种方法)程中的所有线程自行终止运行(这种情况非常少)。10终止进程终止进程思考调用和不调用ExitProcess函数程序输出结果的不同:class CSamplepublic:CSample()printf(“Constructorn);CSample()printf(“Destructorn);CSample g_SampleObj;void main()CSample SampleObj;ExitProcess(0);不调

11、用ExitProcess函数的输出结果:ConstructorConstructorDestructorDestructor调用ExitProcess函数的输出结果:ConstructorConstructor11进程间通信方式进程间通信方式文件映射文件映射 文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待。因此,进程不必使用文件I/O操作,只需简单的指针操作就可读取和修改文件的内容。Win32 API允许多个进程访问同一文件映射对象,各个进程在它自己的地址空间里接收内存的指针。通过使用这些指针,不同进程就可以读或修改文件的内容,实现了对文

12、件中数据的共享。应用程序有三种方法来使多个进程共享一个文件映射对象:继承:第一个进程建立文件映射对象,它的子进程继承该对象的句柄;命名文件映射:第一个进程在建立文件映射对象时可以给该对象指定一个名字(可与文件名不同)。第二个进程可通过这个名字打开此文件映射对象。另外,第一个进程也可以通过一些其它IPC机制(有名管道、邮件槽等)把名字传给第二个进程。句柄复制:第一个进程建立文件映射对象,然后通过其它IPC机制(有名管道、邮件槽等)把对象句柄传递给第二个进程。第二个进程复制该句柄就取得对该文件映射对象的访问权限。12进程间通信方式进程间通信方式共享内存共享内存Win32 API中共享内存(Shar

13、ed Memory)实际就是文件映射的一种特殊情况。进程在创建文件映射对象时用0 xFFFFFFFF来代替文件句柄(HANDLE),就表示了对应的文件映射对象是从操作系统页面文件访问内存,其它进程打开该文件映射对象就可以访问该内存块。由于共享内存是用文件映射实现的,所以它也有较好的安全性,也只能运行于同一计算机上的进程之间。匿名管道匿名管道 匿名管道(Anonymous Pipe)是在父进程和子进程之间,或同一父进程的两个子进程之间传输数据的无名字的单向管道。通常由父进程创建管道,然后由要通信的子进程继承通道的读端点句柄或写端点句柄,然后实现通信。父进程还可以建立两个或更多个继承匿名管道读和写

14、句柄的子进程。这些子进程可以使用管道直接通信,不需要通过父进程。匿名管道是单机上实现子进程标准I/O重定向的有效方法,它不能在网上使用,也不能用于两个不相关的进程之间。13进程间通信方式进程间通信方式命名管道命名管道 命名管道(Named Pipe)是服务器进程和一个或多个客户进程之间通信的单向或双向管道。不同于匿名管道的是命名管道可以在不相关的进程之间和不同计算机之间使用,服务器建立命名管道时给它指定一个名字,任何进程都可以通过该名字打开管道的另一端,根据给定的权限和服务器进程通信。命名管道提供了相对简单的编程接口,使通过网络传输数据并不比同一计算机上两进程之间通信更困难,但它不适合同时和多

15、个进程通信。邮件槽邮件槽 邮件槽(Mailslots)提供进程间单向通信能力,任何进程都能建立邮件槽成为邮件槽服务器。其它进程,称为邮件槽客户,可以通过邮件槽的名字给邮件槽服务器进程发送消息。进来的消息一直放在邮件槽中,直到服务器进程读取它为止。一个进程既可以是邮件槽服务器也可以是邮件槽客户,因此可建立多个邮件槽实现进程间的双向通信。14进程间通信方式进程间通信方式剪贴板剪贴板 剪贴板(Clipped Board)实质是Win32 API中一组用来传输数据的函数和消息,为Windows应用程序之间进行数据共享提供了一个中介,Windows已建立的剪切(复制)粘贴的机制为不同应用程序之间共享不同

16、格式数据提供了一条捷径。当用户在应用程序中执行剪切或复制操作时,应用程序把选取的数据用一种或多种格式放在剪贴板上。然后任何其它应用程序都可以从剪贴板上拾取数据,从给定格式中选择适合自己的格式。动态数据交换动态数据交换 动态数据交换(DDE)是使用共享内存在应用程序之间进行数据交换的一种进程间通信形式。应用程序可以使用DDE进行一次性数据传输,也可以当出现新数据时,通过发送更新值在应用程序间动态交换数据。对象连接与嵌入对象连接与嵌入 应用程序利用对象连接与嵌入(OLE)技术管理复合文档(由多种数据格式组成的文档),OLE提供使某应用程序更容易调用其它应用程序进行数据编辑的服务。15进程间通信方式

17、进程间通信方式动态连接库动态连接库 Win32动态连接库(DLL)中的全局数据可以被调用DLL的所有进程共享,这就又给进程间通信开辟了一条新的途径,当然访问时要注意同步问题。远程过程调用远程过程调用 Win32 API提供的远程过程调用(RPC)使应用程序可以使用远程调用函数,这使在网络上用RPC进行进程通信就像函数调用那样简单。RPC既可以在单机不同进程间使用也可以在网络中使用。NetBios函数函数 Win32 API提供NetBios函数用于处理低级网络控制,这主要是为IBM NetBios系统编写与Windows的接口。除非那些有特殊低级网络功能要求的应用程序,其它应用程序最好不要使用

18、NetBios函数来进行进程间通信。16进程间通信方式进程间通信方式SocketsWindows Sockets规范是一套Windows下的网络编程接口。它不仅支持TCP/IP协议,而且还支持其它协议(如IPX),使程序员可以充分利用Windows的消息机制进行编程。WM_COPYDATA消息消息 WM_COPYDATA是一种非常强大的消息。当一个应用向另一个应用传送数据时,发送方只需使用调用SendMessage函数,参数是目的窗口的句柄、传递数据的起始地址、WM_COPYDATA消息。接收方只需像处理其它消息那样处理WM_COPY DATA消息,这样收发双方就实现了数据共享。17常用的进程

19、相关函数常用的进程相关函数GetExitCodeProcess 检索进程退出码GetGuiResources 确定有多少用户或图形设备接口(GUI)对象在使用中SetPriorityClass 设置进程的基准优先级GetPriorityClass 获得进程的基准优先级SetProcessAffinityMask 确定进程选择那个CPUGetProcessAffinityMask 设置为进程所选择的CPUSetProcessPriorityBoost 允许或禁止来自动态地改变进程优先级的WindowsGetProcessPriorityBoost 读取优先级增加状态SetProcessShutD

20、ownParameters 在系统关闭过程中GetProcessShutDownParameters 读取关闭参数SetProcessWorkingSetSize 设置进程占用的最小和最大物理存储器GetProcessWorkingSetSize 读取工作区TerminateProcess 缓和地终止进程ExitProcess 突然终止进程GetProcessVersion 确定进程期望的Windows版本GetProcessTimes 获取进程的CPU占用率GetStartUpInfo 获取作为传送到CreateProcess的启动结构18windows版本及开发工具简介版本及开发工具简介

21、进程进程 线程线程 线程的建立与退出线程的建立与退出 线程调度线程调度 线程同步线程同步 动态连接库动态连接库 与其它操作系统区别与其它操作系统区别 19线程线程线程是由两个部分组成的:线程的内核对象,操作系统用它来对线程实施管理。内核对象也是系统用来存放线程统计信息的地方。线程堆栈,它用于维护线程在执行代码时需要的所有函数参数和局部变量。20线程的创建线程的创建 创建线程的三种方法:创建线程的三种方法:激活一个新进程调用Win32 API函数CreateThread调用C运行库函数_beginthread/_beginthreadex函数原型:函数原型:HANDLE CreateThread

22、(SEC_ATTRS SecurityAttributes,ULONG StackSize,SEC_THREAD_START StartFunction,PVOID ThreadParameter,ULONG CreationFlags,PULONG ThreadId);uintptr_t _beginthread(void(_cdecl*start_address)(void*),unsigned stack_size,void*arglist);uintptr_t _beginthreadex(void*security,unsigned stack_size,unsigned(_stdc

23、all*start_address)(void*),void*arglist,unsigned initflag,unsigned*thrdaddr);21线程的终止线程的终止若要终止线程的运行,可以使用下面的方法:线程函数返回(最好使用这种方法)。通过调用ExitThread(或_endthread/_endthreadex)函数,线程将自行撤消(最好不要使用这种方法)。同一个进程或另一个进程中的线程调用TerminateThread函数(应该避免使用这种方法)。包含线程的进程终止运行(应该避免使用这种方法)。22线程的终止线程的终止线程终止运行时发生的操作:线程拥有的所有用户对象均被释放。

24、在Windows中,大多数对象是由包含创建这些对象的线程的进程拥有的。但是一个线程拥有两个用户对象,即窗口和挂钩。当线程终止运行时,系统会自动撤消任何窗口,并且卸载线程创建的或安装的任何挂钩。其他对象只有在拥有线程的进程终止运行时才被撤消。线程的退出代码从STILL_ACTIVE改为传递给ExitThread或TerminateThread的代码。线程内核对象的状态变为已通知。如果线程是进程中最后一个活动线程,系统也将进程视为已经终止运行。线程内核对象的使用计数递减1。23线程的优先级线程的优先级线程的优先级获取线程的优先级int GetThreadPriority(HANDLE hThrea

25、d);设置线程的优先级BOOL SetThreadPriority(HANDLE hThread,int nPriority);24线程的优先级线程的优先级进程优先级类和线程相对优先级的映射相对线程优先级空闲低于正常高于正常正常高实时关键时间15155151531最高6810121526高于正常579111425正常468101324低于正常35791223最低24681122空闲111111625线程调度线程调度线程调度的方法:线程调度的方法:暂停和恢复线程的运行调用SuspendThread函数暂停一个线程的执行DWORD SuspendThread(HANDLE hThread);调用R

26、esumeThread函数恢复一个线程的执行DWORD ResumeThread(HANDLE hThread);睡眠方式调用Sleep函数告诉系统本线程不想在某个时间段被调度VOID Sleep(DWORD dwMilliseconds);转换到另一个线程调用SwitchToThread的函数使另一个线程得到调度BOOL SwitchToThread(VOID);26线程同步线程同步线程可以使自己进入等待状态,直到一个对象变为已通知状态。可处于已通知状态或未通知状态的内核对象:进程文件修改通知线程事件作业可等待定时器文件信标控制台输入互斥对象27线程同步线程同步常用等待函数:等待一个内核对象

27、变为已通知状态函数:DWORD WaitForSingleObject(HANDLE hHandle,DWORD dwMilliseconds)等待多个内核对象变为已通知状态函数:DWORD WaitForMultipleObjects(DWORD nCount,CONST HANDLE*lpHandles,BOOL bWaitAll,DWORD dwMilliseconds);28事件内核对象事件内核对象创建事件内核对象:创建事件内核对象:HANDLE CreateEvent(LPSECURITY_ATTRIBUTES lpEventAttributes,BOOL bManualReset,

28、BOOL bInitialState,LPCTSTR lpName);打开事件内核对象:打开事件内核对象:HANDLE OpenEvent(DWORD dwDesiredAccess,BOOL bInheritHandle,LPCTSTR lpName);将事件改为已通知状态:将事件改为已通知状态:BOOL SetEvent(HANDLE hEvent);将事件改为未通知状态:将事件改为未通知状态:BOOL ResetEvent(HANDLE hEvent);29示例示例30人工重置事件人工重置事件31自动重置事件自动重置事件32信标内核对象信标内核对象信标内核对象的创建信标内核对象的创建HA

29、NDLE CreateSemaphore(LPSECURITY_ATTRIBUTES lpSemaphoreAttribute,LONG lInitialCount,LONG lMaximumCount,LPCTSTR lpName);打开信标内核对象打开信标内核对象HANDLE OpenSemaphore(DWORD dwDesiredAccess,BOOL bInheritHandle,LPCTSTR lpName);释放信标资源:释放信标资源:BOOL ReleaseSemaphore(HANDLE hSemaphore,LONG lReleaseCount,LPLONG lpPrevi

30、ousCount);33 信标内核对象使用示例信标内核对象使用示例34互斥对象内核对象互斥对象的创建互斥对象的创建HANDLE CreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes,BOOL bInitialOwner,LPCTSTR lpName);打开互斥对象打开互斥对象HANDLE OpenMutex(DWORD dwDesiredAccess,BOOL bInheritHandle,LPCTSTR lpName);释放互斥对象释放互斥对象BOOL ReleaseMutex(HANDLE hMutex);35内核对象与线程同步之间的相互关

31、系内核对象与线程同步之间的相互关系对象何时处于未通知状态何时处于已通知状态成功等待后处理进程当进程仍然活动时当当进程终止运行时无线程当线程仍然活动时当线程终止运行时无作业当作业的时间尚未结束时当作业的时间已经结束时无文件当I/O请求正在处理时当I/O请求处理完毕时无控制台输入不存在任何输入当存在输入时无文件修改通知没有任何文件被修改当文件系统发现修改时重置通知自动重置事件ResetEvent 或等待成功当调用ResetEvent时重置事件人工重置事件ResetEvent当调用ResetEvent时无自动重置等待定时器CancelWaitableTimer或等待成功 当时间到时重置定时器人工重置

32、等待定时器CancelWaitableTimer当时间到时无信标等待成功当数量0时数量递减1互斥对象等待成功当未被线程拥有时将所有权赋予线程36windows版本及开发工具简介版本及开发工具简介 进程进程 线程线程 线程的建立与退出线程的建立与退出 线程调度线程调度 线程同步线程同步 动态连接库动态连接库 与其它操作系统区别与其它操作系统区别 37库库什么是库?什么是库?库的分类库的分类静态链接库静态链接库动态链接库动态链接库38动态连接库动态连接库为什么使用为什么使用DLL扩展了应用程序的特性。扩展了应用程序的特性。可以用许多种编程语言来编写。可以用许多种编程语言来编写。简化了软件项目的管理

33、简化了软件项目的管理有助于节省内存有助于节省内存有助于资源的共享有助于资源的共享有助于应用程序的本地化有助于应用程序的本地化有助于解决平台差异有助于解决平台差异可以用于一些特殊的目的可以用于一些特殊的目的39动态连接库动态连接库动态链接库的入口动态链接库的入口/出口点出口点40动态链接库动态链接库导出和导入导出和导入DLL函数和数据函数和数据在库的在库的.def文件的文件的EXPROTS部分中填写出导出项目的名称部分中填写出导出项目的名称 使用工具相关的方法,比如使用工具相关的方法,比如Visual C+所使用的所使用的_declspec(dllexport)关键字。关键字。41动态链接库动态

34、链接库动态链接库的调用动态链接库的调用隐式调用隐式调用让应用程序的源代码只引用DLL中包含的符号。这样,当应用程序启动运行时,加载程序就能够隐含加载(和链接)需要的DLL。显式调用显式调用在应用程序运行时让应用程序显式加载需要的DLL并且显式链接到需要的输出符号。显式加载:HMODULE LoadLibrary(LPCTSTR lpFileName);显式卸载:BOOL FreeLibrary(HMODULE hModule);显式链接到一个输出符号:FARPROC GetProcAddress(HMODULE hModule,LPCSTR lpProcName);42线程调用LoadLibr

35、ary时执行的操作步骤43线程调用FreeLibrary时执行的操作步骤44常用的线程相关函数常用的线程相关函数AttachThreadInput 选用线程的处理另外的线程允许的输入,其中,要设置的权能集中在每一个另外的窗口和共享输入状态CreateRemoteThread 在另一个进程中,创建线程CreateThread 在当前进程中创建线程ExitThread 退出当前线程TerminateThread 没有适当地清除情况下,终止线程GetCurrentTherad 得到当前线程句柄GetCurrentThreadId 得到当前线程IDGetExitCodeThread 得到线程的退出代码

36、SetTheradPriority 设置线程优先级GetThreadPriority 读取线程优先级SetThreadPriorityBoost 使能或不使该线程的动态优先级增加GetThreadPriorityBoost 读取该线程动态优先级增加的状态GetThreadTimes 确定被创建、破坏的线程以及使用了多少进程时间SuspendThread 挂起线程ResumeThread 恢复线程(每个命令必须调用SuspendThread一次)SetThreadAffinityMask 确定线程在那个进程中运行SetThreadIdealProcessor 设置线程所选择运行的处理机Switc

37、hToThread 使处理机放弃另外的线程(没有选择哪个线程)45windows版本及开发工具简介版本及开发工具简介 进程进程 线程线程 线程的建立与退出线程的建立与退出 线程调度线程调度 线程同步线程同步 动态连接库动态连接库 与其它操作系统区别与其它操作系统区别 46目前常见操作系统有目前常见操作系统有 LINUX UNIX vxworks windows 47嵌入式系统嵌入式系统嵌入式系统嵌入式系统嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的;适用于对功能、可靠性、成本体积、功耗等综合性能有严格要求的专用计算机系统。嵌入式系统的特点嵌入式系统的特点:

38、高可靠性实时性和具体应用有机地结合在一起软件代码要求高质量、高可靠性一般都固化在只读存储器中或间存中48嵌入式操作系统嵌入式操作系统嵌入式操作系统嵌入式操作系统嵌入式操作系统EOS(Embedded OperatingSystem)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌人系统的全部软、硬件资源的分配、调度工作,控制协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。嵌入式操作系统特有功能嵌入式操作系统特有功能可装卸性 强实时性 统一的接口 操作方便、简单、提供友好的图形GUI 提供强大的网络功能 强稳定性,弱交互性 固化

39、代码 更好的硬件适应性 49常用嵌入式操作系统常用嵌入式操作系统常用嵌入式操作系统常用嵌入式操作系统PALM OS Windows CE Linux VxWorks 50常用嵌入式操作系统常用嵌入式操作系统PALM OS 优点优点操作系统的节能功能 合理的内存管理 数据是以数据库(database)的格式来存储的 外围硬件十分丰富 51常用嵌入式操作系统常用嵌入式操作系统Windows CE优点优点具有灵活的电源管理功能,包括睡眠/唤醒摸式高效率的操作系统特性拥有良好的通信能力 支持嵌套中断 更好的线程响应能力 拥有256个优先级别 支持近1500个Win32 API 52常用嵌入式操作系统常

40、用嵌入式操作系统Linux优点优点精简的内核,性能高、稳定,多任务适用于不同的CPU,支持多种体系结构 能够提供完善的嵌人式GUI以及嵌入式X.Wifld。WS。提供完整的开发工具和SDK,同时提供PC上的开发版本 用户可定制,可提供图形化的定制和配置工具 常用嵌入式芯片的驱动集,支持大量的周边硬件设备,驱动丰富 针对嵌人式的存储方案,提供实时版本和完善的嵌入式解决方案 完善的中文支持,强大的技术支持,完整的文档 开放源码,丰富的软件资源,广泛的软件开发者的支持,价格低廉,结构灵活,适用面广 53常用嵌入式操作系统常用嵌入式操作系统Linux OS与与 Windows CE的比较的比较Linu

41、x是开放源代码的,不存在黑箱技术,遍布全球的众多Linux爱好者都是Linux开发者的强大技术支持者;而Windows CE是非开放性OS;使第三方很难实现产品的定制。Linux的源代码随处可得,注释丰富,文档齐全,易干解决各种问题。Linux的内核小、效率高;而 Windows CE在这方面是笨拙的,占用过多的RAM,应用程序庞大。Linux是开放源代码的OS,在价格上极具竞争力,适合中国国情。Windows CE的版权费用是厂家不得不考虑的因素。Linux不仅支持X86芯片,还是一个跨平台的系统。到目前为止,它可以支持2030种CPU,很多 CPU(包括家电业的芯片)厂商都开始做Linux

42、的平台移植工作,而且移植的速度远远超过Java的开发环境。如果今天采用Linux环境开发产品,那么将来更换CPU时就不会遇到更换平台的困扰。Linux内核的结构在网络方面是非常完整的,它提供了对包括十兆位、百兆位及千兆位的以太网,还有无线网络、Token ring(令牌环)和光纤甚至卫星的支持 Linux在内核结构的设计中考虑适应系统的可裁减性的要求,windows CE在内核结构的设计中并未考虑适应系统的高度可裁减性的要求 54常用嵌入式操作系统常用嵌入式操作系统VxWorks优点优点支持广泛的工业标准支持广泛的工业标准 具备一个高效的微内核具备一个高效的微内核 具有可伸缩性具有可伸缩性 55结束结束56

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁