您的位置: 飞扬精品软件园 >> 文章中心 >> 系统教程 >> Linux系统 >> 僵尸进程及其避免方法

相关文章链接

最新新闻资讯

    僵尸进程及其避免方法

    僵尸进程及其避免方法


    • 阅览次数: 文章来源: 原文作者: 整理日期: 2010-07-12


    24、新增完成事件(completion events)

      init_completion(&my_comp);

      void wait_for_completion(struct completion *comp);

      void complete(struct completion *comp);

      void complete_all(struct completion *comp);

      25、RCU(Read-copy-update)

      rcu_read_lock();

      void call_rcu(struct rcu_head *head, void (*func)(void *arg),

      void *arg);

      26、中断处理

      1、中断处理有返回值了。

      IRQ_RETVAL(handled);

      2、cli(), sti(), save_flags(), 和 restore_flags()不再有效,应该使用local_save_flags() 或local_irq_disable()。

      3、synchronize_irq()函数有改动

      4、新增int can_request_irq(unsigned int irq, unsigned long flags);

      5、request_irq() 和free_irq() 从改到了

      27、异步I/O(AIO)

      ssize_t (*aio_read) (struct kiocb *iocb, char __user *buffer,

      size_t count, loff_t pos);

      ssize_t (*aio_write) (struct kiocb *iocb, const char __user *buffer,

      size_t count, loff_t pos);

      int (*aio_fsync) (struct kiocb *, int datasync);

      新增到了file_operation结构中。

      is_sync_kiocb(struct kiocb *iocb);

      int aio_complete(struct kiocb *iocb, long res, long res2);

      28、网络驱动

      1、struct net_device *alloc_netdev(int sizeof_priv, const char *name,

      void (*setup)(struct net_device *));

      struct net_device *alloc_etherdev(int sizeof_priv);

      2、新增NAPI(New API)

      void netif_rx_schedule(struct net_device *dev);

      void netif_rx_complete(struct net_device *dev);

      int netif_rx_ni(struct sk_buff *skb);

      (老版本为netif_rx())

      29、USB驱动

      老版本struct usb_driver取消了,新的结构体为

      struct usb_class_driver {

      char *name;

      struct file_operations *fops;

      mode_t mode;

      int minor_base;

      };

      int usb_submit_urb(struct urb *urb, int mem_flags);

      int (*probe) (struct usb_interface *intf,

      const struct usb_device_id *id);

      30、block I/O 层

      这一部分做的改动最大。不祥叙。

      31、mmap()

      int remap_page_range(struct vm_area_struct *vma, unsigned long from,

      unsigned long to, unsigned long size,

      pgprot_t prot);

      int io_remap_page_range(struct vm_area_struct *vma, unsigned long from,

      unsigned long to, unsigned long size,

      pgprot_t prot);

      struct page *(*nopage)(struct vm_area_struct *area,

      unsigned long address,

      int *type);

      int (*populate)(struct vm_area_struct *area, unsigned long address,

      unsigned long len, pgprot_t prot, unsigned long pgoff,

      int nonblock);

      int install_page(struct mm_struct *mm, struct vm_area_struct *vma,

      unsigned long addr, struct page *page,

      pgprot_t prot);

      struct page *vmalloc_to_page(void *address);

      32、零拷贝块I/O(Zero-copy block I/O)

      struct bio *bio_map_user(struct block_device *bdev,

      unsigned long uaddr,

      unsigned int len,

      int write_to_vm);

      void bio_unmap_user(struct bio *bio, int write_to_vm);

      int get_user_pages(struct task_struct *task,

      struct mm_struct *mm,

      unsigned long start,

      int len,

      int write,

      int force,

      struct page **pages,

      struct vm_area_struct **vmas);

      33、高端内存操作kmaps

      void *kmap_atomic(struct page *page, enum km_type type);

      void kunmap_atomic(void *address, enum km_type type);

      struct page *kmap_atomic_to_page(void *address);

      老版本:kmap() 和 kunmap()。

      34、驱动模型

      主要用于设备管理。

      1、sysfs

      2、Kobjects

    [1] [2] [3] [4]


查看所有评论

网友对僵尸进程及其避免方法 的评论

网名:
主题:
内容:
验证码: