2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Процессы в ОС Unix
Сообщение06.04.2013, 00:21 


19/02/13
42
Как определить список активных процессов, присутствующих в системе, не управляемых терминалами ?
Нашел команду ps, но не нашел соотвествующих флагов для этого.
Нужно передать на сервер эту информацию, а на сервере нужно найти в этом списке процессов те процессы, которые находятся в оперативной памяти. А с помощью каких команд это можно сделать подскажите, пожалуйста.

 Профиль  
                  
 
 Re: Процессы в ОС Unix
Сообщение06.04.2013, 09:48 
Заслуженный участник
Аватара пользователя


06/10/08
6422
ps же выводит терминал, присоединенный к процессу. Можно отфильтровать, примерно так: ps -A -o 'tty,pid,args' | grep '^?'. Стандартом UNIX формат имени терминала не специфицируется, так что не факт, что на любой ОС будет вопросительный знак в случае отсутствующего терминала.

 Профиль  
                  
 
 Re: Процессы в ОС Unix
Сообщение06.04.2013, 09:59 


19/02/13
42
Xaositect в сообщении #706467 писал(а):
ps же выводит терминал, присоединенный к процессу.

Но я не понял как мне на терминале отобразить процессы, которые находятся в оперативной памяти ? Клиент должен послать все процессы, которые не управляются терминалом на сервер. Я так понял это команда ps -a, только как ее результат переслать на сервер ?

 Профиль  
                  
 
 Re: Процессы в ОС Unix
Сообщение06.04.2013, 10:07 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Во-первых, про какие именно клиент и сервер мы говорим? SSH?
Во-вторых, что Вы имеете в виду под "процессы, которые находятся в оперативной памяти"? Все процессы находятся в оперативной памяти.

 Профиль  
                  
 
 Re: Процессы в ОС Unix
Сообщение06.04.2013, 10:58 


19/02/13
42
Xaositect в сообщении #706473 писал(а):
Во-первых, про какие именно клиент и сервер мы говорим? SSH?
Во-вторых, что Вы имеете в виду под "процессы, которые находятся в оперативной памяти"? Все процессы находятся в оперативной памяти.

Про процессы в оперативной памяти так в задании сказано, сам не очень понимаю.

Вот оно:
Клиент. Создать очередь сообщений. Передать в эту очередь список активных процессов, присутствующих в системе, не управляемых терминалами.
Сервер. Определить в полученном списке процессов те процессы, которые находятся в оперативной памяти.

Вот подскажите, пожалуйста, как это делать. Это в системе unix нужно делать.

 Профиль  
                  
 
 Re: Процессы в ОС Unix
Сообщение06.04.2013, 13:40 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Надо смотреть полную формулировку задания и, возможно, конкретную методику по Вашему курсу. Не написано, через какой механизм должны общаться ваши клиент и сервер (это, скорее всего, написано в задании). Насколько мне известно, стандарт UNIX не предусматривает никаких средств работы со списком процессов, кроме вызова команды ps. Многие, если не все юниксы содержат информацию о прецессах в директории /proc, но формат ее системно-зависим. Так что скорее всего Вам надо будет вызывать ps -A через exec*, если в вашем курсе под "UNIX" не понимается какой-нибудь конкретный UNIX. Не совсем понятно, что значит "процесс находится в оперативной памяти", возможно имеется в виду, что за время передачи списка процессов от клиента к серверу некоторые из них могли завершиться.

 Профиль  
                  
 
 Re: Процессы в ОС Unix
Сообщение06.04.2013, 15:26 


19/02/13
42
Xaositect в сообщении #706553 писал(а):
Надо смотреть полную формулировку задания и, возможно, конкретную методику по Вашему курсу.

Лаба называется Обмен_сообщениями. Работаем через программу Putty. У нас есть доступ на сервер, мы там можем писать код программы и компилировать его там же.

Сделал в клиенте так system("pa -a >dump.txt"); потом передаю на сервер в переменную значение 1, это значит файл записал, а сервер открывает его и считывает строки файла и выводит на экран. Собственно все сделанно, нужно только вывести строки на экран процессов, которые в оперативной памяти. Я предполагаю это нужно делать по флагу состояния процесса.

Я просто толком не знаю по какому условию фильтровать, а так уже все готово.

 Профиль  
                  
 
 Re: Процессы в ОС Unix
Сообщение10.04.2013, 12:51 
Аватара пользователя


20/12/08
236
изниоткуда
Вот почему отечественное программерское образование как будто устроено так, чтобы воспитывать отвращение к предмету?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group