Paralel Programlamaya Giriş

Slides:



Advertisements
Benzer bir sunumlar
Kabuk ve Kısayollar-I.
Advertisements

Bölüm 11 Metin Dosyaları Metin Dosyaları Dosya Açma ve Kapama
LİNUX DİZİN YAPISI Öğr. Gör. Mustafa SARIÖZ
Bölüm 12 ÜST DÜZEY KONULAR Dinamik Bellek Ayırma Önişlemci
Makine Müh. & Jeoloji Müh.
Bilgisayar Programlama Güz 2011
KLAVYE KULLANIMI.
Afyon Kocatepe Üniversitesi Bilgi İşlem Daire Başkanlığı
Bölüm 2 C Dilinin Temelleri
String Diziler(Katarlar)
C Programlama Diline Giriş
4. UNIX ve Linux’e Giriş.
Dosya Sistemi.
MS-DOS DESEM 2008 EMRE UNSAL – ÖZLEM AKTAŞ. İ ŞLET İ M S İ STEM İ Kavramı İ şletim sistemini, bir bilgisayar sisteminde kullanıcı ile iletişim kurarak,
WEB SAYFALARININ SUNUCUYA YERLEŞTİRİLMESİ Okutman İlyas KOÇ.
LİNUX’TA KULLANICI VE DOSYA-DİZİN İŞLEMLERİ
Çerez(Cookie) Kullanımı Oturum Yönetimi
Nesneye Yönelik Programlama
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
Nesneye Dayalı Programlama
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 9. Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1,
Bilgisayar Programlama Güz 2011
Kabuk ve Kısayollar BİLGİSAYAR PROGRAMCILIĞI BÖLÜMÜ
Lınux Command arch:Makine mimarisi hakkinda bilgi verir. “uname -m” komutu ile ayni isleve sahiptir. cat [dosya]:Dosyalari ardarda siralayarak standart.
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
Paralel Programlamaya Giriş
Dosya İşlemleri BİLGİSAYAR PROGRAMCILIĞI BÖLÜMÜ
FONKSİYONLAR.
LİNUX DİZİN YAPISI BİLGİSAYAR PROGRAMCILIĞI BÖLÜMÜ
DOS İŞLETİM SİSTEMİ DOS işletim sistemini öğrenmek bilgisayarda bilginin nasıl depolandığını ve depolama ortamında düzenlenmenin hangi mantıkla yapıldığının.
PBS Betiği Hazırlama ve
Kullanıcı Hesapları Aslı Ergün.
Dosya İşlemleri Öğr. Gör. Mustafa SARIÖZ BİLGİSAYAR TEKNOLOJİLERİ VE PROGRAMLAMA BÖLÜMÜ BİLG 223 AĞ İŞLETİM SİSTEMLERİ DERSİ.
C++ Ders Notları 2.Ders (Dilin Yapısı)
Dosya İşlemleri Öğr. Gör. Mustafa SARIÖZ BİLGİSAYAR TEKNOLOJİLERİ VE PROGRAMLAMA BÖLÜMÜ BİLG 223 AĞ İŞLETİM SİSTEMLERİ DERSİ.
C++ Ders Notları 3.Ders (String İşlemleri)
Kabuk işlemleri.
Paralel Programlamaya Giriş 2
Paralel Programlamaya Giriş
TEMEL LİNUX KOMUTLARI.
KABUK İŞLEMLERİ.
ZAMANLANMIŞ GÖREVLER. Linux sistemde bazı işlerin istediğiniz zamanlarda ya da zaman aralıklarında otomatik olarak yapılmasını sağlayabilirsiniz. Yani.
Kullanıcı Seçeneklerini Güncelleme Kullanıcı güncelleme işlemi konsol ve grafik ortamdan yapılabilir. Komut Satırı ile Kullanıcı Seçeneklerini Güncelleme.
VERİ YAPILARI İşaretçi Nedir? Nesne Tabanlı Programlama.
BMS-301 Kabuk Programlama Güz 2015 (2. Sunu) (Yrd. Doç. Dr. Deniz Dal)
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
BMS-301 Kabuk Programlama Güz 2015 (3. Sunu) (Yrd. Doç. Dr. Deniz Dal)
BİLGİSAYAR programlama II
Linux İşletim Sistemi Metin Editörleri
BMS-301 Kabuk Programlama Güz 2015 (5. Sunu) (Yrd. Doç. Dr. Deniz Dal)
Yardım Komutları Linux’ta komutlar hakkında yardım almak için aşağıdaki komutlar kullanılır : - man - info - whatis - apropos.
BM-103 Programlamaya Giriş Güz 2012 (3. Sunu)
Fonksiyonlar.
BM-308 Paralel Programlamaya Giriş Bahar 2016 (1. Sunu) (Yrd. Doç. Dr. Deniz Dal)
 Linux’te temel dosya sistemi güvenliği kullanıcıların dosya ve dizinler üzerindeki erişim izinlerinin belirlenmesiyle sağlanır. Bir dosya veya dizinlere.
Hafta2 Rekürsif Algoritmalar
BM-308 Paralel Programlamaya Giriş Bahar 2016 (2. Sunu) (Yrd. Doç. Dr. Deniz Dal)
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
Kim Korkar Linux’tan.
Programlama Laboratuarı-I DERS - 3 Program Geliştirme Derleyici ve DevC++ Derleyicisi.
FTP Nedir ? Deniz Kaya FTP NEDİR ? Ftp (File Transfer Protocol), dosya gönderme protokolü manası gelir. Bir bilgisayardan bir başka bilgisayar.
Linux Komutları.
Paralel Programlamaya Giriş
C Programlama Dili Bilgisayar Mühendisliği.
Paralel Programlamaya Giriş
Dosya Yönetimi.
Bölüm 2 C Dilinin Temelleri
NİŞANTAŞI ÜNİVERSİTESİ
Dosya/Dizin İzinleri - Dosya sahibinin izinleri (Dosyanın sahibi : u)
Bölüm 2 C Dilinin Temelleri
Sunum transkripti:

Paralel Programlamaya Giriş BM-308 Paralel Programlamaya Giriş Bahar 2015 (1. Sunu) (Yrd. Doç. Dr. Deniz Dal)

Kabuk (Shell) İşletim sistemlerinde kullanıcı ile bilgisayar donanımı arasında genel olarak 3 katmandan söz edilebilir. Bu katmanlar; kabuk, sistem çağrıları ve çekirdek olarak adlandırılır.

Kabuk (Shell) Kabuk, kullanıcı ile işletim sistemi çekirdeği arasında bir ara birimdir. Kullanıcı tarafından verilen komutları algılar, yorumlar ve sistem çağrıları yardımıyla çekirdeğe iletir. Çekirdek ise bilgisayar donanımıyla doğrudan etkileşen ve işletim sistemi işlevlerini gerçekleştiren bileşendir. Kabuk, işletim sisteminin kullanıcıya görünen yüzüdür. Birçok kaynakta komut yorumlayıcısı olarak da adlandırılmaktadır.

Kabuk (Shell)‏ Komut satırındaki işaretlerin farklı anlamları vardır. root :~# ya da ddal:~$ $ : Bu işaret sizin sıradan kullanıcı olduğunuzu belirtir. # : root kullanıcısı olduğunuzu belirtir. ~ : Kullanıcının ev dizininde bulunduğunuzu belirtir.

Komut Kabuk üzerinde genel komut kullanımı aşağıdaki gibidir: komut -seçenek(ler) argüman(lar)‏ Komut: Sistemin ne yapacağını söyler. Seçenekler (Options): Komutun işleyiş şeklini değiştirmeye yarar. Eksi (-) işareti ile başlar. Argümanlar (Arguments): Komutun üzerinde işlem yapacağı nesnedir. Örneğin dosya, proses, kullanıcı,...

Komut Seçenekleri -h --help Komutla ilgili yardımcı bilgi verir. Kısa ya da uzun yazılışları olabilir: Kısa yazılış: Tek tire (-) tek harf Uzun yazılış: Çift tire (--) sözcük Çoğu komutta bulunan bazı seçenekler: -h --help Komutla ilgili yardımcı bilgi verir. -v --verbose İşlemin aşamalarını ayrıntılı gösterir. -q --quite Hiçbir mesaj çıkartma. -V --version Komutun sürüm numarasını gösterir.

Komut Örnek komutlar ve komutların argümanlar ile kullanımları: $ date (komut)‏ $ cal 12 2000 (komut ve iki argüman)‏ $ ls -l (komut ve bir seçenek)‏ $ ls -laR (komut ve çok seçenek)‏ $ ls -l -a -R (komut ve çok seçenek)‏ $ ls –la /etc (komut, iki seçenek ve bir argüman)

Dosya Yolları Dosya ya da klasör yolu iki şekilde verilebilir: Mutlak: Kök klasöründen (/) başlayarak. Bağıl: Bulunulan dizine göre. Özel klasör isimleri: . : Bulunulan klasör. .. : Bir üst klasör. - : Bir önceki klasör. ~ : Şu anki kullanıcının ev klasörü. ~kullanıcı : Belirtilen kullanıcının ev klasörü. / : Kök dizini

pwd (present-print working directory)‏ O anda içinde bulunduğunuz dizinin mutlak (tam) yolunu (Full Path) verir. ddal:~$ pwd /home/ddal root:~# pwd /root

cd (change directory) Komutu Bu komut dizinler arasında geçiş yapmayı sağlayan komuttur. Direkt olarak yanına yazdığınız dizine gidebilirsiniz. ddal:$ cd /var/log

cd Komutu ddal:$ cd .. ddal:$ cd ../.. Bulunduğunuz dizinden bir veya birden fazla üst dizine çıkabilirsiniz. ddal:$ cd .. ddal:$ cd ../..

cd Komutu ddal:$ cd ddal:$ pwd /home/ddal ddal:$ cd ~ Direkt olarak kendi ev dizininize gidebilirsiniz. ddal:$ cd ddal:$ pwd /home/ddal ddal:$ cd ~

cd Komutu ddal:$ cd ~kaya ddal:$ pwd /home/kaya Diğer kullanıcıların ev dizinlerine de gidebilirsiniz. ddal:$ cd ~kaya ddal:$ pwd /home/kaya

cd Komutu En son bulunduğunuz dizine geri dönebilirsiniz. ddal:$ cd ~kaya ddal:$ cd -

ls Komutu Bulunduğunuz dizinin içerisindeki dizin (folder) ve dosyaları (file) listeler.

ls Seçenekleri ls -l ayrıntılı bir çıktı sunarken ls -a bütün dosyaların (hidden, dot files) gösterilmesini sağlar.

mkdir (make directory) Komutu mkdir komutu yeni bir dizin oluşturmak için kullanılır.

rm (remove) Komutu rm komutu dosya veya dizin silmek için kullanılır.

rm Seçenekleri -i seçeneği ile dosyaların silinip silinmeyeceği kullanıcıya sorulur. (interactive)

rm Seçenekleri -r seçeneği ile dizinler silinebilir. (recursive) Aynı işi rmdir komutuyla da yapabilirsiniz. (Dizin içerisi boş olmak kaydıyla)

rm Seçenekleri -f (force) parametresiyle onay almadan direkt silme işlemini gerçekleştirirsiniz. Dikkat !!!

cat (concatenate) Komutu Görevi girdileri çıktılara yönlendirmektir. -n --number : Satırları numaralar. Bir metin dosyasındaki metni standart çıktı olan ekrana yönlendirebilir. ddal :$ cat deneme.txt bu bir metin dosyasidir

cp (copy) Komutu ddal:$ cp dosya1 dosya1_kopya Dosyanın 2. kopyasını yaratmak için cp komutu kullanılır. ddal:$ cp dosya1 dosya1_kopya -i seçeneği ile yaratılacak dosyanın etkileşimli olarak yaratılması sağlanır. ddal:$ ls dosya1 dosya2 ddal:$ cp dosya1 dosya2 ddal:$ cp -i dosya1 dosya2 cp: overwrite `dosya2`?y

cp (copy) Komutu -r seçeneği ile dizin kopyalama işlemi gerçekleştirilir.

cp Seçenekleri -i : Hedef dosyanın üzerine yazılması gerekecekse uyar. (interactive) -f : Uyarma (force)

mv (move) Komutu Dosyanın ismini değiştirmek ya da bir dosya veya klasörü taşımak için mv komutu kullanılır. mv komutu dosya ve dizinler için aynı şekilde kullanılır. ddal:$ mv dosya2 dosya3

ssh (secure shell)‏ Komut satırı, uzaktan erişim protokolü ve bu protokol ile iletişim kuran yazılım setidir. Benzerlerinden olan Telnet ile aralarındaki en önemli fark sağlamış olduğu güvenli ve şifrelenmiş kabuk erişimidir. ssh günümüzde tüm Linux ve Unix dağıtımlarında öntanımlı uzaktan erişim aracı olarak kullanılmaktadır. ssh uzaktaki Linux ve Unix makinelerde güvenli bir şekilde kabuk açmamıza ve o makinede kullanıcımıza verilmiş haklar ölçüsünde çalışabilmemize imkan tanır. Ayrıca uzak makineyle güvenli bir şekilde dosya alışverişine de imkan sağlamaktadır.

ssh ssh kullanıcı_ismi@makine_ismi (ya da ip'si)‏ ssh makine_ismi (ya da ip'si) -l kullanıcı_ismi Örneğin; ssh test@192.168.81.12 ssh test@makine.ismi.com ssh 192.168.81.12 -l test ssh makine.ismi.com -l test

ssh ssh yaparken kullanıcı ismi belirtilmezse yerel makinedeki kullanıcı isminiz uzak makineye bağlantı sağlanırken kullanılır. test@lab13:~$ ssh makine test@makine's password:

scp (secure copy)‏ ssh ile dosya transferi yapmak da mümkündür. Bunun için ssh'ın sözdizimine benzer bir şekilde scp komutu kullanılır. Kullanımı; scp dosya_adı kullanıcı@makine_adı:dizin_yolu scp dosya test@192.168.81.12:/tmp/ scp -r dizin test@192.168.81.12:~/

LİNUX ORTAMINDA C++ KODLARININ YAZILMASI, DERLENMESİ VE ÇALIŞTIRILMASI İlk aşamada .cpp uzantılı bir C++ program dosyası oluşturunuz. Bu işlemi touch komutu ile yapabilirsiniz. Örnek: $touch HelloWorld.cpp Daha sonra ya bir komut satırı editörü (vi veya nano gibi) ya da bir grafik editörü (gedit gibi) yardımıyla programınızı yazınız ve kaydediniz. Artık programınızı derleyip çalıştırabilirsiniz. Bu işlem için bizim sistemimizde kurulu bulunan g++ adlı C++ derleyicisinden faydalanabilirsiniz. Örnek: $g++ HelloWorld.cpp

LİNUX ORTAMINDA C++ KODLARININ YAZILMASI, DERLENMESİ VE ÇALIŞTIRILMASI Derleme işlemi başarıyla sonlandırılır ise eğer derlemeyi yaptığınız dizinde a.out adında executable (çalıştırılabilir) bir dosya oluşur. Bu dosyayı komut satırından aşağıdaki gibi çalıştırabilirsiniz. (Programınızın komut satırı argümanı almadığını varsayıyorum.) Örnek: $./a.out Eğer programınızın a.out dışında bir executable dosya adıyla çalıştırılmasını istiyorsanız programınızı şöyle derlemelisiniz. Örnek: $g++ HelloWorld.cpp -o cikti.x Örnek: $./cikti.x

UYGULAMA 1 Kullanıcıdan ekrana kaç kere Hello World yazacağını klavye yoluyla cout ve cin deyimleri ile alan bir C++ programı yazınız, derleyiniz ve calıştırınız. (main fonksiyonu kendine argüman almıyor.) (Dosya adı olarak HelloWorld1.cpp kullanabilirsiniz.)

argc ve argv Parametreleri int main() { return 0; } int main(int argc, char* argv[ ]) { return 0; }

argc ve argv Parametreleri (devam) main fonksiyonu içinde kullanılan argc (argument count) adlı, int veri tipindeki ilk argüman programın çalıştırılması esnasında komut satırından girilen komutların/kelimelerin sayısını belirtir. Örnek: $ ./cikti.x -n 100 Yukarıdaki örnekte argc 3 olarak değerlendirilir. Çalıştırılan programın adı da (./cikti.x) argc nin sayısına katkıda bulunur.

argc ve argv Parametreleri (devam) main fonksiyonu içinde kullanılan argv parametresi ise komut satırından girilen parametrelere (karakter dizileri) pointer tutan bir dizidir. Örnek: $ ./cikti.x -n 100 Yukarıdaki örnekte argv[0] = ./cikti.x argv[1] = -n argv[2] = 100 argv[1][0] = - ve argv[1][1] = n

ÖRNEK Aşağıdaki kod parçası komut satırından çalıştırılan bir C++ programının argümanlarını ekrana basar. Argumanlar.cpp #include <iostream>//cout using namespace std; int main(int argc, char* argv[ ]) { for(int i=0; i < argc; i++)    cout<<argv[i]<<endl; return 0; }

atoi ve atof Fonksiyonları Komut satırından girilen her türlü parametre argv dizisi içerisinde string (karakter dizisi) olarak saklanır. (Rakam olarak girildiği düşünülen argümanlar bile.) Yani bütün bu parametreler karakter dizileridir aslında. Bu yüzden bu parametrelerin rakamlara dönüştürülmesi gerektiğinde atoi ve atof fonksiyonlarına ihtiyaç duyulur. atoi (char *str): fonksiyonu kendine argüman olarak aldığı string i integer a çevirir. atof (char *str): fonksiyonu kendine argüman olarak aldığı string i ondalıklı sayıya çevirir. (floating point) atoi ve atof fonksiyonlarını C++ programlarımızın içinde kullanabilmek için standart kütüphaneden <cstdlib> header dosyasını programımızın başına eklemeliyiz. #include <cstdlib>

ÖRNEK for (i=1; i<argc; i++) { if (argv[i][0] == '-') Aşağıdaki C++ kod parçası ne iş yapar? for (i=1; i<argc; i++) { if (argv[i][0] == '-') if (argv[i][1] == 'n') count=atoi(argv[++i]); break; }

UYGULAMA 2 Kullanıcıdan ekrana kaç kere Hello World yazacağını komut satırından argüman olarak alan bir C++ programı yazınız, derleyiniz ve calıştırınız. (main fonksiyonu kendine argüman alıyor.) (Dosya adı olarak HelloWorld2.cpp kullanabilirsiniz.)