Skip to content

Instantly share code, notes, and snippets.

module ActiveSupport
module Dependencies
def load_missing_constant_with_shared_code(from_mod, const_name)
puts "Looking for #{const_name}"
load_missing_constant_without_shared_code(from_mod, const_name)
end
alias_method_chain :load_missing_constant, :shared_code
end
class Customer
def self.options_for_select
all.collect do |customer|
[customer.formatted_for_option, customer.id]
end
end
def formatted_for_option
"#{id}: #{title}"
end
class Doc < File
has_attachment :content_type => 'application/msword',
:max_size => 2.megabytes,
:storage => :file_system
end
class Integer
def to_base(base)
number = self.abs
result = ''
digits = (0..9).to_a + ('A'..'Z').to_a
raise "Sorry, there aren't enough characters to convert #{number} to base #{base}" if base > digits.size
while number > 0
1.1
********
==============================================
Ziele bei der Entwicklung von Betriebssystemen
==============================================
einfache Benutzbarkeit
Effizienz
Sicherheit
Zuverlässigkeit
#!/usr/bin/env python
# encoding: utf-8
# i ist Kandidat für die natürlichen Zahen bis n
def teilersumme(n):
"""gibt die Teilersumme von n aus"""
i=1
# _sum hält die Summe der Teiler
sum=0
Prozessorzeit:
Prozentuale Angabe der vergangenen Prozessorzeit, die zum Ausführen eines Threads benötigt wird, der sich nicht im Leerlauf befindet.
Dieser Leistungsindikator ist die primäre Anzeige der Prozessoraktivität.
Die Zeitspanne, die der Prozessor benötigt, um den Thread des Leerlaufprozesses in jedem Abtastintervall auszuführen, wird von 100% subtrahiert.
(Jeder Prozessor besitzt einen Leerlaufthread, der Zyklen belegt, wenn keine anderen Threads ausgeführt werden können.)
Der Leistungsindikator zeigt die durchschnittliche prozentuale Belegung während dem Abtastintervall an,
indem die Zeitspanne, die der Dienst nicht aktiv war von 100% subtrahiert wird.
Privilegierte Zeit:
Der Prozentanteil der verstrichenen Zeit für Prozessthreads, die im privilegierten Modus ausgeführt werden.
Was ist „busy waiting“?
- "Aktives Warten"
- kann zur Zeitüberbrückung (while i < x) oder zur Synchronisation (while !flag) genutzt werden
Welche anderen Möglichkeiten „zu warten“ gibt es in einem Betriebssystem?
- Interrupt, Schlafenlegen (abgabe der kontrolle an einen Scheduler, der mich dann wieder aufweckt)
Kann „busy waiting“ immer vermieden werden?
- Nein, SpinLock
script/generate model User code:integer
script/generate model Address user:references
script/console
>> User.all
User Load (0.4ms) SELECT * FROM `users`
=> [#<User id: 1, code: 333, created_at: "2009-12-01 23:47:29", updated_at: "2009-12-01 23:47:29">,
#<User id: 2, code: 999, created_at: "2009-12-01 23:47:34", updated_at: "2009-12-01 23:47:34">,
#<User id: 3, code: 1000, created_at: "2009-12-01 23:47:36", updated_at: "2009-12-01 23:47:36">]
>> User.search 333

Datenbanksysteme II

Physische Speicherstrukturen

Die 5-Schichten Architektur

  • Satzorientiert – mengenorientiert (impedance mismatch)

Probleme mit Megatron 2002

  • Hintergründe zu jedem Problem, was muss ein DBMS alles beachten
  • u.a. Nebenläufigkeit, Anfragekontrolle, Puffermanagement (Seiten, Caching, Verdrängungsstrategien, Puffermanager)