h是什么元素| 乳腺发炎吃什么消炎药| 糖耐量受损是什么意思| 家里有蜈蚣是什么原因| 出家人是什么意思| 什么是cin病变| 林子祥属什么生肖| 做穿刺是什么意思| 草莓是什么意思| 怕金病帕金森是什么症状| 孩子鼻子流鼻血是什么原因| 青梅什么季节成熟| 1月15号是什么星座| 肩周炎用什么药好| 港澳通行证办理需要什么证件| 白内障的主要症状是什么| 梦见种树是什么兆头| 长期吃避孕药有什么危害| 例假期间适合吃什么水果| 吃土豆有什么好处和坏处| 小猫不能吃什么食物| 螃蟹一般吃什么| 投行是做什么的| 热锅上的蚂蚁是什么意思| 肺炎吃什么药好| 彩铅是什么| 裸眼视力是什么意思| 男性内分泌失调有什么症状| 拉肚子能吃什么菜| 饮鸩止渴什么意思| bearbrick熊为什么贵| 站点是什么意思| 刺梨果有什么功效| 嘴歪是什么引起的| 怀孕第一个月有什么特征| 七月有什么花| 喝酒前吃什么不容易醉| 朱元璋为什么杀蓝玉| 人出现幻觉是什么原因| 心率低于60说明什么| 什么自如| 外阴又疼又痒用什么药| 高血压能喝什么饮料| 婴儿腹泻吃什么好| 玄武岩属于什么岩石| 苯佐卡因是什么| 女人吃什么最好| 风湿性心脏病是什么原因引起的| 意尔康属于什么档次| 浇花的水壶叫什么| 极差是什么| 1972年是什么年| 05属什么生肖| 印度尼西亚是什么人种| 21三体综合征是指什么| 啊哈是什么意思| 阿司匹林和阿莫西林有什么区别| 肛门坠胀是什么原因| 五更是什么时辰| 胃酸是什么| 左腿酸痛是什么原因| 脑梗塞吃什么药| 梦见自己剪头发是什么意思| 利好是什么意思| 什么是强迫症有哪些表现| 对头是什么意思| 黄精有什么功效和作用| 什么是痣| 二加一笔是什么字| hyper是什么意思| 什么叫游走性关节疼痛| q10什么时候吃最好| 无中生有是什么生肖| 女人有卧蚕代表什么| 中指和无名指一样长代表什么| 经常呛咳是什么病的征兆| 川崎病是什么原因引起的| 天然呆是什么意思| 手足口病涂抹什么药膏| g750是什么金| 阳气最强的树是什么树| 经期吃什么让血量增加| 沙僧是什么生肖| 深谙是什么意思| 撅眼是什么原因造成的| 异丙醇是什么东西| 7月初二是什么星座| 裸辞是什么意思| 股票举牌什么意思| 肝疼吃什么药好| 卡尔文克莱恩是什么牌子| 梦见在水里游泳是什么意思| 拧巴什么意思| 兔子肉不能和什么一起吃| 茶鱼是什么鱼| 属狗的是什么命| 安保是什么工作| 接吻什么感觉| 单核细胞偏高说明什么| 做活检意味着什么| 孩子记忆力差是什么原因| bhcg是什么意思| 军绿色裤子配什么上衣| 为什么不能空腹喝牛奶| 岳云鹏什么学历| 初心不改是什么意思| 貘是什么动物| 为什么鸡蛋不能和牛奶一起吃| 怀孕三个月吃什么对胎儿好| 手指头发红是什么原因| 术前四项检查是什么| 极有家是什么意思| 腹水是什么病| 胎盘分级0级什么意思| 梦见洗头是什么预兆| 为什么吃完饭就想拉屎| 乾隆的名字叫什么| 9.6什么星座| 颈椎曲度变直是什么意思| 女人的胸长什么样| 什么地赞叹| 清热败火的败是什么意思| 大排畸是什么检查| 肩周炎用什么药好| 为什么犹太人聪明| 肺气阴两虚吃什么中成药| 无话不谈是什么意思| 心口窝疼是什么原因| 什么人适合喝蛋白粉| 原生家庭是什么| 1999年出生属什么生肖| 建日是什么意思| 为什么会卵巢早衰| 为什么上小厕会有刺痛感| 巴旦木是什么树的果实| 什么的海洋| 塞上是什么意思| 视力5.3是什么概念| 化疗与放疗有什么区别| 宫寒是什么引起的| 粪便隐血试验弱阳性是什么意思| 天蝎座男和什么星座最配| 睡不着是什么原因| 为什么来月经会拉肚子| 专员是什么级别| 小囊肿是什么病严重吗| 指导是什么意思| 黑猫警长为什么只有5集| 玉兰片和竹笋有什么区别| 左手麻木是什么原因引起的| 小腹隐隐作痛是什么原因女性| 芝麻开花节节高是什么意思| 无性婚姻会有什么好处| 小孩长得慢是什么原因| 干什么赚钱| 耳朵后面疼是什么原因| 卯时属什么生肖| 十六年是什么婚| 中央候补委员是什么级别| 高抬贵手是什么意思| 舒畅的舅舅是做什么的| 吃什么东西会长胖| 行政管理是做什么的| 一个土一个斤念什么| 早搏吃什么药好| 阿尔马尔是什么药| 肝阴虚吃什么药| 15年是什么婚| 平平仄仄是什么意思| 逆熵是什么意思| 为什么老是掉头发特别厉害| 痱子用什么药膏最有效| 睡觉腰疼是什么原因| 为什么总是莫名其妙的想哭| 袋鼠属于什么类动物| 乳腺增生不能吃什么| 狗狗假孕是什么症状| 为什么会蛀牙| 贫血吃什么补血最快| 和尚代表什么生肖| 全会是什么意思| 查转氨酶挂什么科| 小叶增生是什么原因导致的| 梦见找鞋子是什么意思| 没壳的蜗牛叫什么| 长孙皇后为什么叫观音婢| 游字五行属什么| 眼压高是什么症状| 邓超是什么星座| 西昌火把节是什么时候| 女仆是什么意思| 湿疹长什么样子图片| 低密度脂蛋白偏高什么意思| 发烧一直不退是什么原因| 鹅和什么一起炖最好吃| 八七年属兔的是什么命| vd是什么意思| 什么时候放开二胎政策| 意大利用的什么货币| 急性肠胃炎有什么症状| mrcp检查是什么意思| 嗓子痛吃什么药好得快| 黄埔军校现在是什么学校| 纤维瘤是什么病| 避孕药什么时候吃有效| 禾真念什么| 两个gg是什么牌子的包包| 533是什么意思| 芈月传芈姝结局是什么| 千年杀是什么| 吃什么对肝有好处| 尿细菌计数高是什么原因| 什么节日吃汤圆| 两肺纹理增多是什么意思| 孕妇熬夜对胎儿有什么影响| 急性阑尾炎可以吃什么| 黄体酮低吃什么补得快| lane是什么意思| 子宫肌瘤伴钙化是什么意思| 补钙吃什么食物最好最快中老年| 柠檬可以做什么| 褐色是什么颜色的图片| 艾叶煮水喝有什么功效| 三个女人一台戏什么意思| 心脏彩超fs是什么意思| 九浅一深什么意思| 回绝是什么意思| 低血钾吃什么补上来的快| 物业费都包括什么服务| 牛仔外套搭配什么裤子好看| 三十年婚姻是什么婚| 吴亦凡帅到什么程度| 744是什么意思| 太白金星叫什么| 低烧吃什么药最好| 淋巴组织增生是什么意思| 孕妇血糖高可以吃什么水果| 股骨头坏死吃什么药| 关二爷是什么神| female是什么意思| 空性是什么意思| 矫正牙齿挂什么科| 双子座前面是什么星座| 腹膜透析是什么意思| 亚临床甲减是什么意思| 砖红色是什么颜色| 西葫芦炒什么好吃| 鸡内金有什么作用| 咏柳是什么意思| 巴扎是什么意思| 心胸狭窄是什么意思| 佛心果是什么东西| 下肢浮肿挂什么科| 父亲节是什么时候| 中国的国球是什么| 电起火用什么灭火器| 右肋骨下方隐隐疼痛是什么原因| 九寨沟什么时候去最好| 葛根粉有什么功效| 物理压榨油是什么意思| 脚痒用什么药膏最有效| 什么喷剂延时最好| 孕晚期感冒可以吃什么药| 肽是什么东西| 百度Vai al contenuto

你好奇的熊猫知识都在这里

Da Wikipedia, l'enciclopedia libera.
Schema di astrazione dall'utente fino all'esecuzione da parte dell'hardware
百度 哑巴是什么原因造成的

Con esecuzione, in informatica, si indica il processo tramite il quale un sistema di elaborazione (computer o macchina virtuale) esegue (elabora) le istruzioni di un programma, seguendone il flusso di esecuzione specificato nel rispettivo codice sorgente, dopo le fasi di compilazione/interpretazione e linking. In generale il termine "eseguire" è usato per indicare l'avvio di un programma installato; più precisamente, l'esecuzione è lo stato in cui si trova un processo quando una CPU sta eseguendo le istruzioni che lo caratterizzano (a differenza di altri momenti in cui può essere ad esempio in uno stato sospeso (idle), o anche in attesa che si renda disponibile una CPU; vedi anche scheduler).

Premesse e contesto

[modifica | modifica wikitesto]
I passi della compilazione

Il contesto in cui avviene l'esecuzione è cruciale: rispetto al numero totale di programmi disponibili sono pochissimi quelli che possono essere eseguiti direttamente da un computer senza il supporto del sistema operativo.

I programmi generalmente contengono assunzioni implicite ed esplicite sulle risorse accessibili al momento dell'esecuzione (ad esempio la disponibilità di canali standard di comunicazione, o di un file system su cui memorizzare dati). La maggior parte dei programmi sono eseguiti con il supporto del sistema operativo e di librerie specifiche per il linguaggio, i quali forniscono i servizi essenziali non offerti direttamente dal computer stesso. Questo ambiente di supporto, ad esempio, offre ai processi dei metodi uniformi per accedere a periferiche anche radicalmente diverse tra loro, e nel contempo impedisce ad essi di accedervi direttamente e di creare così conflitti tra processi ed utenti.

Un programma scritto in linguaggio assembly o in un linguaggio di programmazione ad alto livello (codice sorgente), può essere eseguito solo compilando il codice sorgente in codice oggetto ovvero traducendolo in linguaggio macchina che darà vita poi al programma eseguibile, oppure servendosi di un interprete.

Indicazioni nell'interfaccia grafica

[modifica | modifica wikitesto]
Lo stesso argomento in dettaglio: Monotasking, Multitasking, Multithreading ed Esecuzione in background.
Un processore single thread esegue un solo thread per processo

Nei moderni sistemi operativi multitasking le shell grafiche e testuali permettono all'utente di indicare un programma da eseguire (tramite menu, icone o specificandolo in una riga di comando); quando ciò avviene, la shell invoca una chiamata di sistema che crea un processo figlio ove sono caricati i dati e le istruzioni del programma da mandare in esecuzione. Ad esempio, nei sistemi operativi Unix e Unix-like la chiamata di sistema fork (ovvero "forchetta" o "biforcazione") crea un nuovo processo facendo una copia del processo chiamante; il nuovo processo può sostituire interamente i propri dati e le proprie istruzioni con quelle del programma invocando una delle chiamate di sistema della famiglia exec.

Al termine della sua esecuzione, il processo chiede al sistema operativo di essere terminato tramite una chiamata di sistema (ad esempio exit nei sistemi Unix) la quale rende disponibile al processo padre il valore di uscita e provvede a liberare le risorse che venivano occupate dal processo. L'esecuzione di un processo può terminare anticipatamente, senza che esso chieda da solo di essere terminato, ad esempio quando l'utente o il sistema operativo gli invia un segnale per richiederne la terminazione (tramite la chiamata di sistema kill nei sistemi Unix). Un particolare e importante tipo di esecuzione è l'esecuzione in background.

Da parte del sistema operativo

[modifica | modifica wikitesto]
Lo stesso argomento in dettaglio: Scheduler, Processo (informatica) e Thread (informatica).
Schema di uno Scheduler

Nella maggior parte dei computer moderni, basati sull'architettura di von Neumann, l'esecuzione di un programma binario prevede che, sotto l'attività e il controllo del sistema operativo, il programma stesso sia inizialmente caricato in memoria primaria (es. RAM), tipicamente a partire da una periferica di memoria di massa (o memoria secondaria), come ad esempio un disco rigido. Viene quindi identificato il "punto d'ingresso" (entry point) del programma (cioè la prima istruzione), e il rispettivo indirizzo di memoria viene copiato in un registro del processore detto program counter. A questo punto viene avviato nel processore, da parte dell'Unità di Controllo, un ciclo di fetch-execute che ripetutamente preleva l'istruzione "puntata" dal program counter, incrementa il program counter in modo da farlo puntare all'istruzione successiva, ed esegue l'istruzione caricata sequenzialmente nell'ordine.

Si può osservare che il ciclo fetch-execute, per default, comporta dunque l'esecuzione sequenziale delle istruzioni del programma. L'istruzione corrente, tuttavia, può modificare il program counter: questa operazione corrisponde ad un'istruzione di salto goto o ad una di salto condizionato che è il meccanismo fondamentale su cui si basa l'implementazione delle strutture di controllo più evolute da parte di compilatori e interpreti. Un programma in esecuzione è visto dal sistema operativo come un processo o insieme di processi, gestiti attraverso chiamate di sistema, e più programmi/processi possono essere eseguiti contemporaneamente attraverso l'eventuale multitasking offerto dal sistema operativo stesso e gestito dallo scheduler.

Da parte dell'hardware

[modifica | modifica wikitesto]
Lo stesso argomento in dettaglio: Ciclo del processore.
Ciclo del processore (fetch-execute) dopo la fase iniziale di boot

Un programma scritto direttamente o convertito in linguaggio macchina può essere eseguito direttamente da un computer, inteso come hardware. L'esecuzione di codice da parte di una macchina hardware nel ciclo di fetch-execute è possibile in virtù della capacità del processore di eseguire una serie di istruzioni base (instruction set), sulla quale il programma è mappato/tradotto a livello di linguaggio macchina, grazie ai circuiti elettronici di base (circuiti integrati) che compongono il processore stesso. Dal punto di vista utente, nei calcolatori moderni questo normalmente avviene grazie all'esercizio, gestione o controllo delle risorse hardware (processore, memoria, ecc...) operata dal sistema operativo che funge da piattaforma software del sistema. L'unica eccezione si verifica al momento dell'accensione del computer, quando viene fatto il boot e viene eseguito il firmware che si occupa di testare l'elettronica e di caricare il sistema operativo. Una volta che il processo di boot ha passato il controllo al sistema operativo, nessun programma può essere eseguito direttamente dall'hardware.

Col tempo è divenuto raro che un programma sia adatto all'esecuzione diretta da parte di un computer inteso come solo hardware; di norma, esso richiede una macchina virtuale che comprende l'hardware del computer con l'aggiunta di uno o più livelli di software che contribuiscono a creare l'ambiente di esecuzione adatto per il programma stesso. Gli stessi programmi eseguibili richiedono di norma la presenza di un determinato sistema operativo, di determinate librerie, e così via. Benché le linee generali del funzionamento di una macchina virtuale siano talvolta piuttosto simili a quelle descritte sopra per la macchina di von Neumann, in molti casi esse se ne discostano in maniera sostanziale, introducendo numerosi concetti non presenti in tale architettura (per esempio, lo stack dei record di attivazione). Si può dire che un linguaggio di programmazione è tanto più ad alto livello quanto più la corrispondente macchina virtuale esibisce caratteristiche concettualmente distanti dai meccanismi fondamentali dell'architettura di von Neumann (o, in generale, dell'architettura hardware sottostante).

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica
烩是什么意思 子是什么生肖 吃什么补肺 什么是白肺 荔枝不能跟什么一起吃
脉搏跳得快是什么原因 胃胀吃什么水果 手足口是什么引起的 cho是什么意思 轻断食什么意思
舌头两边锯齿状是什么原因 福泽深厚什么意思 站军姿有什么好处 满目苍夷是什么意思 做梦牙掉了是什么征兆
隔离的作用是什么 井底之蛙的寓意是什么 36岁属什么生肖 肾虚腰疼吃什么药最有效 夏天吃什么蔬菜好
出的汗是凉的什么原因hcv9jop6ns9r.cn 多潘立酮片是什么药hcv8jop2ns5r.cn 天天喝豆浆有什么好处和坏处hcv9jop0ns2r.cn 口蜜腹剑是什么意思hcv7jop7ns2r.cn offer什么意思mmeoe.com
人过留名雁过留声什么意思hcv8jop6ns4r.cn 高血压三级是什么意思hcv9jop5ns3r.cn 知了代表什么生肖hcv9jop1ns8r.cn 痛风脚痛吃什么药hcv9jop8ns1r.cn 胆囊息肉挂什么科helloaicloud.com
插队是什么意思hcv9jop5ns5r.cn 土命缺什么hcv9jop6ns0r.cn 肺结核传染途径是什么hcv8jop4ns6r.cn 阳历一月份是什么星座hcv7jop6ns7r.cn 白血病是什么症状hcv8jop1ns4r.cn
阴毛变白是什么原因shenchushe.com a和ab型生的孩子是什么血型hcv8jop4ns3r.cn 鲶鱼是什么鱼hcv8jop3ns8r.cn 单核细胞是什么travellingsim.com 色弱和色盲有什么区别hcv8jop9ns3r.cn
百度 技术支持:蜘蛛池 www.kelongchi.com