EA1-Futtatókörnyezetek Flashcards

1
Q

Mik a futtatókörnyezet jellemzői?

A
Hordozhatóság
Kompaktság
Hatékonyság
Biztonság
Együttműködés
Rugalmasság
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Mit értünk a futtatókörnyezet hordozhatósága alatt?

A

IL segítségével n+m (n*m helyett) fordítóra van szükség, hogy n nyelvet m platfromra implementáljunk.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Mit értünk a futtatókörnyezet kompaktsága alatt?

A

IL kód kompaktabb is lehet, mint az eredeti kód

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Mit értünk a futtatókörnyezet hatékonysága alatt?

A

Köztes kódról natív kódra csak a lehető legkésőbbi pillanatban fordul, a végleges környezetben. Így kihasználhatja annak sajátosságait, valamint statisztikát készíthet a futtatókörnyezet a futó kódról, és erre építve optimalizált kódot fordíthat.

A fejlesztők egy környezetben dolgoznak, fejlesztésük eredménye több platformon is futtatható.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Mit értünk a futtatókörnyezet biztonsága alatt?

A

Adatellenőrzés (pl. garbage collector)

Kódellenőrzés (pl. futás közbeni hibák azonnali megfogása)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Mit értünk a futtatókörnyezet együttműködése alatt?

A

Többnyelvűség könnyebb támogatása. (pl. .NET)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Mit értünk a futtatókörnyezet rugalmassága alatt?

A

“metaprograming”, reflection, dynamic code generation, serialization, type browsing stb.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hogy néz ki a .NET architektúra?

A
Application
Magasabb szintű .NET komponensek
Base Class Library (BCL)
Common Language Runtime (CLR)
OS
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

CLR

A
Common Language Runtime
Közös nyelvi futtatókörnyezet.
Több programnyelv támogatása
Robosztus és biztonságos felügyelt (managed)
.NET nyelvfüggetlen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Mi a felügyelt környezet?

A

Felügyelt adat + Felügyelt kód

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Mi a felügyelt adat?

A

Automatikus élettartam-felügyelet.
Memória felszabadítás akkor amikor szükséges.
Generációs elv: fiatal objektumok hamar halnak.
Hátrány: Kivülről nézve nem determinisztikus.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Mi a felügyelt kód?

A

Kötelező metainformációk. A kód szigorú típusellenőrzésnek vethető alá. Megszűnnek a leggyakoribb hibaforrások.
Egységes hibakezelés CLR-ben definiálva.
Közös nyelvi specifikáció, minden nyelvhez más fordító, de azonos kimenet -> IL (Intermediate Language)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Mi az IL?

A
Intermediate Language
Processzor és architektúra független-
Kiértékelő verem alapú
Ellenőrízhető
Továbbfordításra tervezték -> nem interpretált
Nyelfüggetlen
Objektumorientált
Metaadatok
Könnyű visszafejteni
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Fordítás és végrehajtás menete

A

->Fordítás (forráskód -> nyelvi forditó)
->Assembly(Köztes kód (IL) + Metaadatok (.dll, .exe))
->Végrehajtás (JIT fordító -> Natív kód)
JIT fordító - telepítéskor vagy a metódus első meghívásakor

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Mi a .NET Szerelvény (Assembly)?

A

Telepítés egysége (verzióval)

.dll vagy .exe
Ez van benne:
IL kód
Metaadatok a szerelvényről (manifest)
Metaadatok a .NET osztáyokról
Erőforrások (.jpg, .txt, .xml)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Szerelvény referenciák/hivatkozások

A

Szerelvények függhetnek egymástól
A.exe használja B.dll-ben levő típusokat
A-ból akkor használhatók B típusai, ha A-ban referenciát teszünk B-re
Referencia csak egy irányú lehet pl. A.dll használja B.dll-t akkor B.dll nem használhatja A.dll-t -> nem alakulhatnak ki függőségi körök
Erre építve többkomponensú alkalmazásokat tudunk készíteni

17
Q

Mik a szerelvényszintű meteaadat információk?

A

manifest
Név
Verzió: 4 szj. major, minor, build number, revision
Szerelvény referenciák

18
Q

Szerelvények verziókezelése

A

[major].[minor].[buildnumber].[revisionnumber]

major: ha változik teljesen új verzió születetett, inkompatibilis verziók
minor: a kompatibilitási szándék megvolt, csak bővült funkciókkal
buildnumber: legygyakrabban kompatibilisek (kisebb módosítások)
revisionnumber: kompatibilis, csak hibajavítás (pl. hotfix, QFE: quick fix engineering)

19
Q

Többkomponensű alkalmazások telepítése, könyvtárak használatának lehetőségei

A

1, privát
2, közös dll-ek egy kp-i mappában
3, közös dll-ek egy kp-i mappában, de több verzió egymás mellett

20
Q

Privát dll

A

Exe és minden dll-je egy közös mappában
Pro: egyszerű, könnyű telepítés
Con: sok helyet igényelhet

21
Q

Közös dll- ek egy kp-i mappában

A

Natív (nem .NET) világban klasszikus megoldás
Pro: helyspórolás
Con: DLL hell

22
Q

DLL Hell

A

AppA.exe -> CryptoLib.dll (v1)
AppB.exe -> CryptoLib.dll (v2)
AppB felülcsapja a közös helyen tárolt CryptoLib-.dll-t, AppA futás közben kicrashel

23
Q

Közös dll-ek egy kp-i mappában, de több verzió egymás mellett

A

több azonos nevű dll egy kp-i mappában, de küönböző verzió
megoldja a dll hell-t
egy időben népszerű volt, de inkább a privátot használjuk ma

24
Q

Erős névvel azonosított szerelvények

A
Több verzió egymás mellett, erős név teszi egyedivé:
Név
Fejlesztő cég nyilvános kulcsa
Verziószám
Nyelv és kultúra
25
Q

GAC

A

Global Assembly Cache
Több alkalmazás által használt szerelvények központi gyűjtőhelye
Csak azonosított szerelvények lehetnek itt - egyediség, biztonság garantált

26
Q

Azonosított szerlvények integritásvédelme

A

alapelv: szerelvények digitális aláírása a fejlesztő cég privát kulcsával
CLR szerelvény betöltésekor ellenőrzi, nem sérült-e az integritás