25 Mayıs 2013 Cumartesi

İşletim Sistemleri Dersi 2. Ödev'in Devamı


Linux Üzerinde gcc Kullanımı, C kodlarını Derlemek ve Çalıştırmak 


 Öncelikle masaüstümde  gedit aplikasyonuyla  .c uzantılı  merhaba.c  dosyasını oluşturuyorum.



Daha sonra  bu komutu derlemek için gcc kullanıyorum. Eğer  Yüklü değilse terminalde  yum install gcc komutunu kullanarak  bu  paketi yükleyebiliriz. Yazmış olduğum bu C kodunu çalıştırmak için gcc  merhaba.c -o merhaba komutunu ve ./merhaba komutunu çalıştırıyorum. Bu işlemlerin çıktısını alttaki ekran görüntüsünde görebiliriz.



Şimdi asıl amacımız olan strace komutunu çalıştırıp, çıktılarını göreceğiz.  Strace komutu, linux ortamında  API çağrılarını gösterebilen bir araçtır. Özellikle hangi çağrı ne zaman yapılmış gibi bilgilerle uygulama profiling edilmiş olur. Profiling ile maksat, hangi kod ne kadar kullanılmış ne kadar zamana mal olmuş gibi optimizasyon ile ilgili bilgileri elde etmektir.


  • Execve: Programı çalıştırmıştır. Parametre olarak dosya adı verilir. Execve başarılı bir şekilde çalıştığı için bir şey dönmemiştir eğer bir hata oluşsaydı o zaman -1 dönecekti
  • Mmap: Çağrılan işlemin  sanal adres alanı için bir mapping yaratır
  • Access: Çağrılan process’in dosyanın path ismine erişip eremedğini kontrol eder.
  • Open: Dosyanın yapılacağı işe göre negatif olmayan bir tam sayı döner.
  • Fstat: Dosya hakkında bilgi döner.
  • Close: Dosya tanımlayıcısını kapatır.
  • Read: File descriptor’dan itibaren olan byte’ların okunması işlemini yapar
  • Mprotect: Çağrılan işlemin hafiza sayfası için alanındaki korumayı değiştirir.
  • Munmap: Belirli adres alanları içerisindeki mappingleri siler böylece geçersiz hale gelen bellek adreslerinin sonraki referanslar için kullanılabilmesini sağlar.
  • Write: Bufferdan file descriptor’a kadar olan byteları yazar.
  • Exit_group: exit(2) ile aynıdır tek farkı sadece bir thread’i çağırma bütün çağrılan işleim bütün thread grubunu çağırır. 
1.      Sorunun Cevabı:

IBM Power 7 işlemcili bir sunucu üzerinde RHEL 6 çalışıyor. Buradaki xeyes uygulamasını kendi PC’mde sanal ortamda çalışan RHEL 6 sunucuya atarsam bu uygulama düzgün çalışabilir. Burada baktığımız şey işlemci farklılığı değil. Eğer işletim sistemleri aynı ise bu uygulama çalışabilir.



Hiç yorum yok:

Yorum Gönder