Articles of 程序

CFS中vruntime的概念是什么?

我一直在阅读关于内核中的Linux内核和CFS调度器。 我遇到了vruntime (虚拟运行时),这是CFS调度程序背后的核心概念。 我从“ Linux内核开发 ”以及互联网上的其他博客阅读,但无法理解vruntime背后的基本计算。 vruntime属于一个特定的进程,还是属于一组具有相同漂亮值的进程? 什么是加权因子 ,它是如何计算的? 我经历了所有这些概念,但无法理解。 还有什么区别vruntime和* min_vruntime *?

在linux中启动一个jar文件就好像service

我想要启动并停止我的jar文件,如下所示 service myService start service myService stop 我目前的jar文件运行如下 cd /home/alex/IdeaProjects/myService java -jar target/myService-SNAPSHOT-1.jar server config.yml 我该怎么办?

阻止用户进程被Process Explorer中的“End Process”终止

我注意到GoogleToolbarNotifier.exe不能从Process Explorer中被杀死。 它返回“访问被拒绝”。 它以用户身份运行,运行“正常”优先级,并从程序文件运行。 他们是如何做到的呢? 我认为可能有一种方法来修改ACL,或者将进程标记为“关键”,但我似乎无法find任何东西。 更新: 我find了一个很好的挖掘答案。 @Alex K.是正确的,在PROCESS_TERMINATE权限被删除的过程,但我想提供代码中的答案: static const bool ProtectProcess() { HANDLE hProcess = GetCurrentProcess(); EXPLICIT_ACCESS denyAccess = {0}; DWORD dwAccessPermissions = GENERIC_WRITE|PROCESS_ALL_ACCESS|WRITE_DAC|DELETE|WRITE_OWNER|READ_CONTROL; BuildExplicitAccessWithName( &denyAccess, _T("CURRENT_USER"), dwAccessPermissions, DENY_ACCESS, NO_INHERITANCE ); PACL pTempDacl = NULL; DWORD dwErr = 0; dwErr = SetEntriesInAcl( 1, &denyAccess, NULL, &pTempDacl ); // check dwErr… dwErr = […]

在Windows中获取另一个进程命令行

我想获得另一个进程命令行(在WinXP 32位)。 我做了以下几点: hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ | PROCESS_TERMINATE, FALSE, ProcList.proc_id_as_numbers[i]); BytesNeeded = sizeof(PROCESS_BASIC_INFORMATION); ZwQueryInformationProcess(hProcess, ProcessBasicInformation, UserPool, sizeof(PROCESS_BASIC_INFORMATION), &BytesNeeded); pbi = (PPROCESS_BASIC_INFORMATION)UserPool; BytesNeeded = sizeof(PEB); res = ZwReadVirtualMemory(hProcess, pbi->PebBaseAddress, UserPool, sizeof(PEB), &BytesNeeded); /* zero value returned */ peb = (PPEB)UserPool; BytesNeeded = sizeof(RTL_USER_PROCESS_PARAMETERS); res = ZwReadVirtualMemory(hProcess, peb->ProcessParameters, UserPool, sizeof(RTL_USER_PROCESS_PARAMETERS), &BytesNeeded); ProcParam = (PRTL_USER_PROCESS_PARAMETERS)UserPool; 第一次调用pbi.UniqueProcessID之后是正确的。 […]

Windows任务调度程序在几秒钟内执行任务

我正在寻找Windows 7(开发机器)的开源/免费任务调度程序,这将允许我安排任务(HTTP请求到Web服务)每x秒运行一次。 我已经尝试了几个克隆克隆和Windows自己的任务计划,但似乎都不允许任务运行间隔less于60秒。 我错过了什么吗? 如果可能的话,我不想去写任何自定义脚本。

我怎样才能得到我的应用程序创build的所有线程列表

我想从我的应用程序中获得所有线程(除了主线程,GUI线程)的列表,以便对它们执行一些操作。 (设置优先级,杀死,暂停等)如何做到这一点?

检测一个进程是否仍在运行

我需要检查一个给定的HANDLE进程是否仍在运行,我尝试使用下面的代码来完成它,但是它总是返回第二个返回false,即使进程正在运行。 bool isProcessRunning(HANDLE process) { if(process == INVALID_HANDLE_VALUE)return false; DWORD exitCode; if(GetExitCodeProcess(process, &exitCode) != 0) return false;//always returns here return GetLastError() == STILL_ACTIVE;//still running }

使用SetProcessWorkingSetSize的优点和缺点

我的应用程序中有内存pipe理问题。 应用程序内存在运行时迅速增长。 我在断开模式下使用数据集。 为了解决这个问题,我经常刷新DS,并使用SetProcessWorkingSetSize来pipe理内存使用情况。 在我的开发电脑上工作正常。 使用SetProcessWorkingSetSize的优点和缺点是什么?

在Windows x86和x64下将x86.exe展开到“C:\ Windows \ System32”?

我想使我的安装程序在x86 / x64窗口兼容,这意味着便携式。 我做innosetup安装程序只扩展一个x86 CLI可执行文件,并且我需要将其展开到C:\ windows \ system32目录,即使安装程序在Windows x64下运行,否则如果将其展开到C:\ Windows \ Syswow64目录,然后在Windows x64 CMD下无法识别该exe文件。 那么我应该怎样设置这个属性来使它在上面指定的条件下可移植呢? ArchitecturesInstallIn64BitMode= ??? 在这里扩展文件时,我应该使用什么标志? Source: {sys}\My_x86_application.exe; DestDir: {sys}; Flags: ??? 我已经玩了32Bit , 64Bit和Is64BitInstallMode等一些标志,但我不能得到预期的结果,因为如果我知道限制常量{syswow64}在Windows x86下引发安装错误… UPDATE 这是我的安装脚本的相关部分,但它是错误的,它应该与x86和x64窗口(便携式)兼容,并且只在两个窗口下将Source: {sys}\*文件扩展到C:\ Windows \ System32使用常量{sys}来检测dirpath,当然)。 [Setup] DefaultDirName={pf32}\{#AppName} ArchitecturesAllowed=x86 x64 ArchitecturesInstallIn64BitMode=x64 [Files] Source: {app}\*; DestDir: {app}; Flags: ignoreversion Source: {sys}\*; DestDir: {sys}; Flags: ignoreversion 64bit

Wix – 卸载不同的产品

我们的主要安装者调用另一个产品(产品B)安装程序 这将在“”添加删除程序“窗口中创build两个条目。 当我卸载主要产品时,产品B未从机器上移除。 卸载主产品时,是否可以卸载产品B?