PT MITRATAMA GLOBAL SEJAHTERA
BPPT 1 Building | 15 floor, Suite 1502 - 1504
Jl. M.H Thamrin No.8 Jakarta Pusat 10340
Phone. (021)3142864, 3142745
Fax. (021)3142745
email : info@400education.com

Masukan email

Customers service

Berita dan Article

Keunggulan IBM System i pada Set Instruksi

Salah satu fitur yang memberikan kontribusi untuk umur panjang dari platform IBM System i adalah tingkat tinggi instruksi yang ditetapkan (disebut TIMI untuk “Antarmuka Teknologi Mesin Independen” oleh IBM), yang memungkinkan program aplikasi untuk mengambil keuntungan dari kemajuan dalam perangkat keras dan perangkat lunak tanpa kompilasi ulang. TIMI merupakan sebuah set instruksi virtual independen dari instruksi mesin yang mendasari set CPU. User-mode program mengandung TIMI instruksi dan instruksi mesin CPU, sehingga menjamin kemerdekaan hardware. Hal ini secara konseptual agak mirip dengan arsitektur mesin virtual lingkungan pemrograman seperti Smalltalk, Java dan. NET. Perbedaan utama adalah bahwa hal itu tertanam begitu dalam ke dalam desain AS/400 itu untuk membuat aplikasi secara efektif biner-kompatibel di seluruh keluarga prosesor yang berbeda.

Perhatikan bahwa, tidak seperti beberapa virtual mesin arsitektur lain di mana instruksi virtual yang ditafsirkan pada waktu berjalan, TIMI instruksi yang pernah ditafsirkan. Mereka merupakan langkah kompilasi waktu menengah dan diterjemahkan ke dalam instruksi prosesor ditetapkan sebagai langkah kompilasi akhir. Para TIMI instruksi disimpan dalam objek program akhir, di samping instruksi mesin dieksekusi. Ini adalah bagaimana objek aplikasi dikompilasi pada satu keluarga prosesor (misalnya, AS/400 CISC asli 48-bit prosesor) dapat dipindahkan ke prosesor baru (misalnya, PowerPC 64-bit) tanpa re-kompilasi. Sebuah aplikasi diselamatkan dari platform 48-bit yang lebih tua hanya dapat dikembalikan ke platform 64-bit yang baru dimana sistem operasi membuang instruksi mesin tua dan kembali menerjemahkan instruksi TIMI menjadi 64-bit instruksi untuk prosesor baru.

Set instruksi dengan IBM System i mendefinisikan semua pointer sebagai 48-bit. Ini adalah fitur desain asli dari System/38 (S/38) pada pertengahan 1970-an perencanaan untuk penggunaan masa depan prosesor yang lebih cepat, memori dan ruang alamat diperluas. Model AS/400 CISC asli menggunakan ruang 48-bit alamat yang sama seperti S/38. Ruang alamat diperluas pada tahun 1995 ketika PowerPC RS64 RISC 64-bit CPU prosesor diganti prosesor 48-bit CISC.

Untuk 64-bit prosesor PowerPC, alamat virtual berada di 64 bit paling kanan dari pointer sementara itu 48 bit di S/38 dan AS/400 CISC. The 64-bit alamat ruang utama referensi memori dan disk sebagai satu set alamat tunggal yang adalah konsep penyimpanan tunggal-tingkat.

sumber : http://en.wikipedia.org/wiki/AS_400


Sejarah IBM System i

IBM System i, dulu dikenal sebagai AS/400, merupakan kelanjutan dari arsitektur System/38 mesin database (diumumkan oleh IBM pada bulan Oktober 1978 dan dikirimkan pada bulan Agustus 1979).  AS/400 menambahkan kompatibilitas sumber dengan System/36 menggabungkan dua komputer utama yang diproduksi oleh pabrik IBM Rochester. Yang paling sukses System/36 IBM mini komputer tapi arsitektur telah mencapai batasnya. Sistem AS/400 pertama (dikenal dengan nama kode pengembangan Silverlake dan Olimpiade) dikirim pada tahun 1988 di bawah tag line “Best of Both Worlds” dan lini produk telah refresh terus sejak saat itu. Guy Dehond dari Desainer Inventif adalah salah satu beta-penguji dari Silverlake. Para programer yang bekerja pada OS/400, sistem operasi AS/400, tidak memiliki latar belakang UNIX. Dr Frank Soltis, kepala arsitek, mengatakan bahwa ini adalah perbedaan utama antara ini dan sistem operasi lain.

AS/400 adalah salah satu tujuan umum pertama sistem komputer untuk mencapai peringkat keamanan C2 dari NSA (Gould UTX/C2, sistem berbasis UNIX pada tahun 1986, dan pada tahun 1995 diperpanjang untuk mempekerjakan prosesor 64-bit dan sistem operasi.

Perubahan dari tahun 1995-48-64-bit diperlukan bahwa semua program harus ‘diamati’, yaitu bahwa informasi debugging belum dilucuti keluar dari kode dikompilasi. Hal ini menyebabkan masalah bagi mereka yang telah membeli produk pihak ketiga yang tidak memiliki sumber dan observability tidak ada. Pada tahun 2008, pengenalan V6R1 disebabkan masalah yang sama, meskipun kali ini IBM lebih suka menyebutnya sebagai “refresh”.

Pada tahun 2000 IBM AS/400 berganti nama untuk iSeries, sebagai bagian dari e-Server inisiatif branding. Lini produk kemudian diperpanjang pada tahun 2004 dengan pengenalan dari server i5, yang pertama menggunakan prosesor IBM POWER5. Arsitektur sistem yang memungkinkan untuk pelaksanaan masa depan 128-bit prosesor ketika mereka menjadi tersedia.

Meskipun diumumkan pada tahun 1988, AS/400 tetap paling baru pergeseran arsitektur IBM besar yang sepenuhnya dikembangkan secara internal. Sejak kedatangan Lou Gerstner pada tahun 1993, IBM telah dilihat perkembangan seperti internal yang kolosal karena terlalu berisiko. Sebaliknya, IBM sekarang lebih suka untuk membuat langkah kunci produk melalui akuisisi (misalnya, pengambilalihan Perangkat Lunak Lotus dan Rational Software) dan untuk mendukung pengembangan standar terbuka, khususnya Linux. Perlu dicatat bahwa setelah kepergian John Akers CEO pada tahun 1993, ketika IBM tampak mungkin berpisah, Bill Gates berkomentar bahwa satu-satunya bagian dari IBM bahwa Microsoft akan tertarik adalah divisi AS/400. (Pada saat itu, banyak sistem internal Microsoft berlari pada platform AS/400.)

 

sumber : http://en.wikipedia.org/wiki/AS_400

[wowslider id="1"]


Membangun AS/400 perintah untuk program UNIX

Kami mencakup dasar-dasar menggunakan perintah prosesor AS/400 untuk membantu Anda port aplikasi Anda. Pelajari cara menggunakan perintah mendorong dan membantu,metode instalasi dan pesan produk AS/400.

Saran kode dan pemrograman di sini, yang dilengkapi oleh IBM, adalah serangkaian contoh sederhana, dimaksudkan untuk memberikan ilustrasi dari konsep. Contoh-contoh ini belum diuji secara menyeluruh dalam segala kondisi. IBM, karena itu, tidak dapat menjamin atau menyiratkan keandalan, kemudahan servis, atau fungsi kode ini.

Semua kode program dan saran pemrograman yang terkandung di sini disediakan untuk Anda “SEBAGAIMANA ADANYA”. Jaminan tersirat dapat diperjualbelikan dan kesesuaian untuk tujuan tertentu secara tegas menyangkal. Pada akhirnya, itu adalah tanggung jawab programmer individu untuk memahami aplikasi nya sendiri dan menggunakan saran ini karena berkaitan terbaik untuk aplikasi tersebut.

IBM menawarkan berikut sebagai hanya sebagai solusi potensial, yang harus dievaluasi secara individual digunakan. Semua merek, perusahaan, layanan, atau nama produk yang disebutkan adalah merek dagang, merek layanan, atau merek dagang terdaftar dari perusahaan masing-masing.

Ikhtisar

Untuk melengkapi port dari aplikasi Anda untuk AS/400, Anda akan ingin menggunakan beberapa layanan AS/400 dasar seperti perintah mendorong dan membantu, metode produk instalasi, dan pesan AS/400. Yang pertama dari ketiga topik akan dibahas dalam dokumen ini.

Jika Anda memiliki kesempatan untuk menghabiskan beberapa waktu menggunakan perintah AS/400 mendorong, Anda akan menghargai kegunaan dan mungkin bertanya-tanya mengapa UNIX atau DOS tidak pernah sesuatu yang begitu bersih dan sehingga benar-benar terintegrasi ke dalam sistem operasi. Anda dapat memberikan aplikasi semacam ini sama antarmuka perintah berikut petunjuk sederhana di bawah ini.

Pertama, di sini adalah referensi definitif untuk semua hal yang saya akan membahas:

CL Pemrograman: SC41-5721
Tampilan Aplikasi Pemrograman: SC41-5715

Juga, sementara ada banyak tindakan yang kompleks dan kuat yang dapat dilakukan dengan menggunakan perintah prosesor AS/400, itu bukan maksud dari dokumen ini untuk mencakup semua aspek ini – hanya dasar yang diperlukan.

Berikut adalah gambaran singkat dari objek yang dibutuhkan. Objek perintah (* CMD) adalah apa yang dimasukkan pada baris perintah. Parameter untuk menciptakan perintah termasuk menentukan objek panel membantu kelompok (* PNLGRP) dan objek program (* PGM) untuk memproses data dari perintah. Dalam contoh ke kanan, program pengolah perintah, FOOCPP membangun string perintah, yang digunakan untuk memanggil program foo.

Program yang disebut ‘FOO’ memiliki tiga parameter baris perintah:

-O [nama file] output ke file
-S semacam output yang
-W menampilkan peringatan

Foo memahami semua kombinasi bendera atau ketiadaan. Jadi, menggunakan valid ‘FOO’ dalam lingkungan UNIX mungkin:

Foo%
% Foo-omyfile.out
Foo%-w
Foo%-w-s
Foo% -o/home/joe/out1-s
% Foo-s

Demikian pula, khas perintah AS/400 cocok akan terlihat seperti:

FOO
FOO OUTPUT (‘myfile.out’)
FOO MEMPERINGATKAN (* YES)
FOO OUTPUT (‘/ home/joe/out1′) SORT (* YES)
OO SORT (* YES) WARN (* NO)

Plus, dengan versi AS/400, pengguna akan mengharapkan bantuan kontekstual dengan menekan F1 manapun pada parameter perintah, atau perintah itu sendiri. Memberikan kemampuan ini tidak terlalu sulit dan akan mewakili perbedaan antara ‘aplikasi AS/400′ dan sebuah ‘aplikasi UNIX yang berjalan di AS/400′.

Perintah AS/400, seperti semua hal lain pada sistem, adalah obyek. Benda-benda perintah memiliki jenis CMD *. Mereka diciptakan oleh ‘sumber perintah’ kompilasi. Sumber ini harus berada dalam sebuah file sumber fisik, biasanya disebut QCMDSRC. Bagian dari menciptakan objek CMD * adalah menentukan sebuah program untuk proses perintah. Dalam contoh kita, kita akan menulis sebuah program C yang kecil untuk melakukan pengolahan data dari perintah. Bagian lain dari menciptakan objek CMD * adalah menentukan ‘kelompok panel’ untuk bantuan interaktif. Pembentukan bagian-bagian ini dapat dengan mudah dilakukan dengan menggunakan template yang disediakan.

Secara singkat, langkah-langkahnya:

Mengubah perpustakaan saat ini (* CURLIB).
Buat file sumber fisik.
Masukkan kode sumber untuk perintah, program pengolah perintah, dan kelompok panel membantu.
Buat kelompok bantuan panel (* PNLGRP) objek.
Buat program perintah pengolahan (* PGM) objek.
Buat perintah (* CMD) objek.
Uji perintah.

Buatlah perpustakaan di mana Anda ingin membuat objek ‘perpustakaan saat ini’ Anda. Hal ini dilakukan menggunakan perintah CHGCURLIB. Atau, Anda dapat mengubah profil pengguna Anda untuk mengatur ‘perpustakaan saat ini’ pada saat signon. Lakukan ini dengan mendorong pada perintah CHGPRF. Dalam contoh ini, saya telah mengatur perpustakaan saat ini untuk MYLIB.

Selanjutnya, membuat file sumber fisik. Sangat mungkin bahwa Anda sudah memiliki file sumber bernama QCSRC, yang berisi sumber untuk FOO program yang akhirnya tidak pekerjaan yang kita sedang membangun semua hal ini, jadi pada contoh di bawah, pesan kesalahan ditampilkan saat membuat QCSRC. Untuk membuat file sumber ketiga, masukkan perintah berikut:

CRTSRCPF QCMDSRC
QCMDSRC file yang dibuat di perpustakaan MYLIB.
CRTSRCPF QPNLSRC
QPNLSRC file yang dibuat di perpustakaan MYLIB.
CRTSRCPF QCSRC
Berkas QCSRC sudah ada di MYLIB perpustakaan.
QCSRC File tidak diciptakan di perpustakaan MYLIB.

Kemudian, masukkan sumber. Untuk contoh ini, ini adalah anggota dalam file sumber yang sesuai fisik:
JENIS ANGGOTA
FILE
QCMDSRC FOO CMD
QPNLSRC FOO PNLGRP
QCSRC FOOCPP C
QCSRC FOO C

Ingat, kita mengasumsikan bahwa anggota ini sudah ada.

Berikut adalah tiga anggota sumber baru, dalam urutan yang tercantum di atas.

QCMDSRC / FOO

CMD PROMPT (‘Foo, seperti dalam Fubar’)
Parm KWD (OUTPUT) TYPE (* CHAR) LEN (32) DFT (”) +
BERBEDA (* YES) PROMPT (‘Output nama’)
Parm KWD (SORT) TYPE (* CHAR) LEN (4) RSTD (* YES) +
DFT (* NO) VALUES (* NO * YES) PROMPT (‘Urutkan +
output ‘)
Parm KWD (MEMPERINGATKAN) TYPE (* CHAR) LEN (4) RSTD (* YES) +
DFT (* NO) VALUES (* NO * YES) PROMPT (‘Tampilan +
Peringatan ‘)

QPNLSRC / FOO

: PNLGRP.
: HELP nama = foo.
: P.
Teks di sini menjelaskan apa perintah ‘FOO’ tidak.
Anda dapat menggunakan tag format yang dijelaskan dalam buku untuk membuat tampilan ini lebih cantik.
Tampilan Aplikasi Pemrograman SC41-5715.
: EHELP.
: HELP name = ‘foo / output’.
: P.
Item ini digunakan untuk membantu informasi tentang parameter pertama.
: EHELP.
: HELP name = ‘foo / semacam’.
: P.
Item ini digunakan untuk membantu informasi tentang parameter kedua.
: EHELP.
: HELP name = ‘foo / memperingatkan’.
: P.
Item ini digunakan untuk membantu informasi tentang parameter ketiga.
: EHELP.
: Nama BANTUAN = boo.
: P.
Item ini digunakan untuk membantu informasi tentang perintah hantu, ‘boo’.
: EHELP.
: EPNLGRP.

QCSRC / FOOCPP

# Include <string.h>
# Include

void main (int argc, char * argv [])
{
arang cmdstr [512] = “CALL PGM (FOO) parm (“;

if (argc = 4!)
exit (1);

/ * Ini 2 byte pertama dari string teks yang masuk mewakili, sebagai pendek,
panjang teks masuk. Tidak ada
null terminator pada akhir string.
Hal ini karena BERBEDA (* YES) pilihan parameter dalam sumber perintah.
* /

jika (* (* singkat) argv [1]> 0)
{
strcat (cmdstr, “‘-o”);
strncat (cmdstr, argv [1] +2, * (pendek *) argv [1]);
strcat (cmdstr, “‘”);
}

if (strncmp (argv [2], “* YA”, 4) == 0)
strcat (cmdstr, “‘-s’”);

if (strncmp (argv [3], “* YA”, 4) == 0)
strcat (cmdstr, “‘-w’”);

strcat (cmdstr, “)”);

sistem (cmdstr);
}

Berikutnya, kita akan menciptakan tiga obyek dari kode sumber di atas. Ingat, karena kita telah mengubah perpustakaan saat ini untuk di mana kita ingin membuat benda-benda, mereka akan diciptakan di sana secara default.

CRTCMD CMD (FOO) PGM (FOOCPP) HLPPNLGRP (FOO) HLPID (FOO)
Perintah FOO dibuat di perpustakaan MYLIB.
CRTPNLGRP PNLGRP (FOO)
Pesan peringatan yang dikeluarkan ketika panel kelompok FOO dibuat.
CRTBNDC PGM (FOOCPP)
Program FOOCPP diciptakan di perpustakaan MYLIB pada 11/05/97 di 17:17:50.

Itu saja! Anda sekarang dapat prompt perintah FOO, karena itu dalam daftar perpustakaan. Tentu saja, jika MYLIB tidak dalam daftar perpustakaan, maka Anda bisa meminta pada MLIB / FOO. Anda dapat menekan F1 untuk mendapatkan bantuan tentang parameter. Anda mungkin akan ingin menempatkan semua benda-benda di perpustakaan yang sama seperti semua program aplikasi Anda untuk menyederhanakan hal.
Kembali ke atas

Catatan

Semua bantuan untuk beberapa perintah dapat ditemukan dalam kelompok panel yang sama, dikelompokkan dalam yang sama: PNLGRP dan: EPNLGRP tag. Para: HELP dan: EHELP tag membantu kelompok untuk perintah individu. Anda akan melihat bahwa bahasa ini menyerupai HTML struktural, dengan tag untuk mengidentifikasi bagian. Jika Anda melihat dekat pada kode sumber untuk kelompok panel membantu, Anda akan melihat bahwa ada didefinisikan nama bantuan ‘boo’ untuk perintah hantu, yang tidak ada.

Semua anggota perintah sumber individu, untuk perintah yang berbeda dan program, harus ditempatkan dalam QCMDSRC.

Parameter * Para CHAR dari perintah mendorong, diteruskan ke program pengolah perintah, tidak diakhiri dengan null, dan ini adalah mengapa kita menggunakan BERBEDA (* YES) pilihan untuk parameter. Hal ini membuat command prompt mengirim byte 2-(default) ditandatangani integer sebagai 2 byte pertama dari string. Itulah mengapa C untuk berurusan dengan parameter yang mendapat jelek.

Semua parameter dari perintah yang diberikan kepada program pengolah perintah. Oleh karena itu, bahkan jika Anda tidak memasukkan apa pun untuk parameter tertentu, argc masih akan ditetapkan untuk jumlah parameter yang didefinisikan dalam sumber perintah.

Analyzer perintah (CA) dapat melakukan banyak pemeriksaan sintaks untuk Anda, jadi jika nilai untuk parameter OUTPUT adalah benar-benar nama jalan, Anda dapat menentukan JENIS (* PNAME) dan CA akan memverifikasi bahwa apa yang pengguna tertentu adalah sah nama. Anda juga mungkin ingin menentukan KASUS (* CAMPURAN) sehingga CA tidak monocase nilai-nilai tidak tertutup dalam tanda kutip tunggal.

Analyzer perintah (CA) dapat melakukan banyak pekerjaan parameter validasi untuk Anda dan tidak akan membiarkan pengguna memasukkan parameter yang tidak didefinisikan dalam perintah Anda. Sebagai contoh, cara perintah kita ditentukan, pengguna tidak dapat memasukkan apa pun selain * YA atau TIDAK untuk SORT * dan MEMPERINGATKAN parameter. Jika FOO melakukan banyak hal parameter validasi (seperti memeriksa nilai-nilai yang valid), Anda mungkin ingin menambahkan parameter lain untuk FOO untuk mengatakan bahwa ia sedang dipanggil untuk proses perintah FOO, maka bisa melewatkan parameter validasi setiap pekerjaan yang telah telah dilakukan oleh CA.