2014 dxdy logo

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

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




 
 Процессы в ОС Unix
Сообщение06.04.2013, 00:21 
Как определить список активных процессов, присутствующих в системе, не управляемых терминалами ?
Нашел команду ps, но не нашел соотвествующих флагов для этого.
Нужно передать на сервер эту информацию, а на сервере нужно найти в этом списке процессов те процессы, которые находятся в оперативной памяти. А с помощью каких команд это можно сделать подскажите, пожалуйста.

 
 
 
 Re: Процессы в ОС Unix
Сообщение06.04.2013, 09:48 
Аватара пользователя
ps же выводит терминал, присоединенный к процессу. Можно отфильтровать, примерно так: ps -A -o 'tty,pid,args' | grep '^?'. Стандартом UNIX формат имени терминала не специфицируется, так что не факт, что на любой ОС будет вопросительный знак в случае отсутствующего терминала.

 
 
 
 Re: Процессы в ОС Unix
Сообщение06.04.2013, 09:59 
Xaositect в сообщении #706467 писал(а):
ps же выводит терминал, присоединенный к процессу.

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

 
 
 
 Re: Процессы в ОС Unix
Сообщение06.04.2013, 10:07 
Аватара пользователя
Во-первых, про какие именно клиент и сервер мы говорим? SSH?
Во-вторых, что Вы имеете в виду под "процессы, которые находятся в оперативной памяти"? Все процессы находятся в оперативной памяти.

 
 
 
 Re: Процессы в ОС Unix
Сообщение06.04.2013, 10:58 
Xaositect в сообщении #706473 писал(а):
Во-первых, про какие именно клиент и сервер мы говорим? SSH?
Во-вторых, что Вы имеете в виду под "процессы, которые находятся в оперативной памяти"? Все процессы находятся в оперативной памяти.

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

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

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

 
 
 
 Re: Процессы в ОС Unix
Сообщение06.04.2013, 13:40 
Аватара пользователя
Надо смотреть полную формулировку задания и, возможно, конкретную методику по Вашему курсу. Не написано, через какой механизм должны общаться ваши клиент и сервер (это, скорее всего, написано в задании). Насколько мне известно, стандарт UNIX не предусматривает никаких средств работы со списком процессов, кроме вызова команды ps. Многие, если не все юниксы содержат информацию о прецессах в директории /proc, но формат ее системно-зависим. Так что скорее всего Вам надо будет вызывать ps -A через exec*, если в вашем курсе под "UNIX" не понимается какой-нибудь конкретный UNIX. Не совсем понятно, что значит "процесс находится в оперативной памяти", возможно имеется в виду, что за время передачи списка процессов от клиента к серверу некоторые из них могли завершиться.

 
 
 
 Re: Процессы в ОС Unix
Сообщение06.04.2013, 15:26 
Xaositect в сообщении #706553 писал(а):
Надо смотреть полную формулировку задания и, возможно, конкретную методику по Вашему курсу.

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

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

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

 
 
 
 Re: Процессы в ОС Unix
Сообщение10.04.2013, 12:51 
Аватара пользователя
Вот почему отечественное программерское образование как будто устроено так, чтобы воспитывать отвращение к предмету?

 
 
 [ Сообщений: 8 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group