আমি এই প্রশ্নের উত্তরের মধ্য দিয়ে এসেছি কিন্তু সিস্টেম কল এবং গ্রন্থাগার ফাংশনগুলির মধ্যে পার্থক্যটি বেশ বুঝতে পারি না understand ধারণাগতভাবে, উভয়ের মধ্যে পার্থক্য কী?
আমি এই প্রশ্নের উত্তরের মধ্য দিয়ে এসেছি কিন্তু সিস্টেম কল এবং গ্রন্থাগার ফাংশনগুলির মধ্যে পার্থক্যটি বেশ বুঝতে পারি না understand ধারণাগতভাবে, উভয়ের মধ্যে পার্থক্য কী?
উত্তর:
ধারণামূলকভাবে, একটি লাইব্রেরি ফাংশন আপনার প্রক্রিয়ার অংশ।
রান-টাইমে, আপনার এক্সিকিউটেবল কোড এবং কোনও লাইব্রেরির কোড (যেমন libc.so) এটির উপর নির্ভর করে, একটি একক প্রক্রিয়াতে যুক্ত হন। সুতরাং, আপনি যখন এই জাতীয় লাইব্রেরিতে কোনও ফাংশন কল করেন, এটি একই প্রক্রিয়া এবং সুযোগ-সুবিধা সহ আপনার প্রক্রিয়ার অংশ হিসাবে কার্যকর করে। আপনি নিজে লিখেছেন এমন কোনও ফাংশন কল করার একই ধারণা (PLT এবং / অথবা ট্রাম্পোলিন ফাংশনগুলির মতো সম্ভাব্য ব্যতিক্রমগুলি, যা আপনি যদি যত্ন নেন তবে আপনি সন্ধান করতে পারেন)।
ধারণামূলকভাবে, একটি সিস্টেম কল হ'ল একটি বিশেষ ইন্টারফেস যা আপনার কোড থেকে কল করতে ব্যবহৃত হয় (যা সাধারণত অপ্রতিযুক্ত হয়) কার্নেলটিতে (যা প্রয়োজনীয় হিসাবে সুবিধাগুলি বাড়ানোর অধিকার রয়েছে) to
উদাহরণস্বরূপ, লিনাক্স ম্যান ব্রেকে দেখুন । যখন কোনও সি প্রোগ্রাম malloc
মেমোরি বরাদ্দ করতে কল করে, এটি গ্লিবিসিতে একটি লাইব্রেরি ফাংশন কল করে।
যদি প্রক্রিয়াটির ভিতরে বরাদ্দের জন্য ইতিমধ্যে পর্যাপ্ত জায়গা থাকে তবে এটি প্রয়োজনীয় গাদা ব্যবস্থা করতে পারে এবং কলিকে মেমরি ফিরিয়ে দিতে পারে।
যদি তা না হয়, গিলিবিকে কার্নেল থেকে আরও মেমরির জন্য অনুরোধ করা দরকার: এটি (সম্ভবত) brk
গ্লিবসি ফাংশনকে কল করে , যার ফলে brk
সিস্কেলকে ডাকা হয় । সিস্কলের মাধ্যমে একবার কার্নেলের কাছে নিয়ন্ত্রণ পৌঁছে গেলে আরও মেমরি সংরক্ষণের জন্য গ্লোবাল ভার্চুয়াল মেমরি স্টেটটি সংশোধন করা যেতে পারে এবং এটি আপনার প্রক্রিয়াটির ঠিকানার জায়গায় মানচিত্র তৈরি করতে পারে।
অকেজো 'উত্তরে যুক্ত করা:
গ্রন্থাগার ফাংশনগুলি সিস্টেম কলগুলির চেয়ে দ্রুততর হয় এবং সাধারণত অনুমতি / সুরক্ষা বিবেচনা থাকে না, কারণ তারা প্রক্রিয়াটির সুবিধাগুলি নিয়ে চলছে এবং এটির স্মৃতি।
অন্যদিকে সিস্কলগুলি, যেহেতু তারা কার্নেলে চালিত হয়, সিস্টেমে সমস্ত কিছুর অ্যাক্সেস পায় এবং তাই কল করার সময় তাদের কলিং প্রক্রিয়া কী করতে পারে তা নিয়ন্ত্রণ করা দরকার (এটি ফাইলটি খোলার অনুমতি রয়েছে কিনা তা যাচাই করে নিন) উদাহরণস্বরূপ) এছাড়াও, যেহেতু সিস্কলগুলি কার্নেলের মধ্যে রয়েছে, তাদের কল করার জন্য সিপিইউতে একটি প্রসঙ্গের সুইচ দরকার যা কেবল একটি লাইব্রেরি কল কল করার তুলনায় খুব ভারী প্রক্রিয়া।
সিস্কলগুলি সাধারণত মনিটরিং প্রোগ্রামগুলিতে সিস্টেম সিপিইউ ব্যবহার হিসাবে প্রতিফলিত হয়।
লাইব্রেরি কল - অ্যাপ্লিকেশনে লিঙ্কযুক্ত একটি সাবরুটিন (লাইব্রেরি সহ বা যুক্ত করার মাধ্যমে) আবেদন করে।
সিস্টেম কল - ওএস (ব্যবহারকারী-> সিস্টেম প্রোক-> ওএস) এ নিয়ন্ত্রণ স্থানান্তর করে এবং প্রসেসরটিকে সুবিধাপ্রাপ্ত মোডে রাখে