Okay so I'm assuming that you haven't used Migrate before. If you'd like some background reading take a look at the slides for the presentation I'll be giving at DrupalCon in Denver: http://denver2012.drupal.org/sites/default/files/slides/Migrate_0.pdf It should help you understand some of the concepts.
One thing that's important to point out is that you'll need two migrations:
- Using (a) and MigrateSourceCSV as a source and—assuming the groups will be nodes—MigrateDestinationNode as a destination.
- Using (b) and MigrateSourceCSV as a source and MigrateDestinationOGMembership (as you noted part of Migrate Extras) as a destination.
The CSV files are actually really easy to use as a source. You can see an example of it in the Migrate docs: http://drupal.org/node/1152158
In your case you could setup the source for (a) with:
// The definition of the columns. Keys are integers, values are an
// array of field name then description.
$columns = array(
0 => array('gid', 'Id'),
1 => array('group_title', 'Title'),
2 => array('group_body', 'Body'),
3 => array('group_admin', 'Admin'),
// Instantiate the class using the path to the CSV file and the columns.
$this->source = new MigrateSourceCSV('path/to/a.csv', $columns);
You'll also need to know something about your source when you setup the Map because it needs to create a field to store the source ids in... since gid's are basically nid's you can just cheat and use that source's schema definition:
$this->map = new MigrateSQLMap($this->machineName,