描述
编辑
以一个停车场的运作为例。简单起见,假设停车场只有三个车位,一开始三个车位都是空的。这时如果同时来了五辆车,看门人允许其中三辆直接进入,然后放下车拦,剩下的车则必须在入口等待,此后来的车也都不得不在入口处等待。这时,有一辆车离开停车场,看门人得知后,打开车拦,放入外面的一辆进去,如果又离开两辆,则又可以放入两辆,如此往复。
在这个停车场系统中,车位是公共资源,每辆车好比一个线程,看门人起的就是信号量的作用。
分类
编辑
整型信号量(integer semaphore):信号量是整数
记录型信号量(record semaphore):每个信号量s除一个整数值s.value(计数)外,还有一个进程等待队列s.L,其中是阻塞在该信号量的各个进程的标识
二进制信号量(binary semaphore):只允许信号量取0或1值
每个信号量至少须记录两个信息:信号量的值和等待该信号量的进程队列。它的类型定义如下:(用类PASCAL语言表述)
semaphore = record
value: integer
queue: ^PCB
end
其中PCB是进程控制块,是操作系统为每个进程建立的数据结构。
s.value>=0时,s.queue为空;
s.value<0时,s.value的绝对值为s.queue中等待进程的个数;
特性
编辑
抽象的来讲,信号量的特性如下:信号量是一个非负整数(车位数),所有通过它的线程/进程(车辆)都会将该整数减一(通过它当然是为了使用资源),当该整数值为零时,所有试图通过它的线程都将处于等待状态。在信号量上我们定义两种操作: Wait(等待) 和 Release(释放)。当一个线程调用Wait操作时,它要么得到资源然后将信号量减一,要么一直等下去(指放入阻塞队列),直到信号量大于等于一时。Release(释放)实际上是在信号量上执行加操作,对应于车辆离开停车场,该操作之所以叫做“释放”是因为释放了由信号量守护的资源。
操作方式
编辑
对信号量有4种操作(include<semaphore>):
1. 初始化(initialize),也叫做建立(create) int sem_init(sem_t *sem, int pshared, unsigned int value)
2. 等信号(wait),也可叫做挂起(suspend)int sem_wait(sem_t *sem)
3. 给信号(signal)或发信号(post) int sem_post(sem_t *sem)
4.清理(destroy) int sem_destory(sem_t *sem)[1]
创建
编辑
同共享内存一样,系统中同样需要为信号量集定制一系列专有的操作函数(semget,semctl等)。系统命令ipcs可查看当前的系统IPC的状态,在命令后使用-s参数。使用函数semget可以创建或者获得一个信号量集ID,函数原型如下:
#include <sys/shm.h>
int semget( key_t key, int nsems, int flag)
函数中参数key用来变换成一个标识符,每一个IPC对象与一个key相对应。当新建一个共享内存段时,使用参数flag的相应权限位对ipc_perm结构中的mode域赋值,对相应信号量集的shmid_ds初始化的值如表1所示。
shmid_ds结构初始化值表
ipc_perm结构数据
初 值
ipc_perm结构数据
初 值
Sem_otime
0
Sem_nsems
Nsems
Sem_ctime
系统当前值
参数nsems是一个大于等于0的值,用于指明该信号量集中可用资源数(在创建一个信号量时)。当打开一个已存在的信号量集时该参数值为0。函数执行成功,则返回信号量集的标识符(一个大于等于0的整数),失败,则返回–1。函数semop用以操作一个信号量集,函数原型如下:
#include <sys/sem.h>
int semop( int semid, struct sembuf semoparray[], size_t nops )
函数中参数semid是一个通过semget函数返回的一个信号量标识符,参数nops标明了参数semoparray所指向数组中的元素个数。参数semoparray是一个struct sembuf结构类型的数组指针,结构sembuf来说明所要执行的操作,其定义如下:
struct sembuf{
unsigned short sem_num
short sem_op
short sem_flg
}
在sembuf结构中,sem_num是相对应的信号量集中的某一个资源,所以其值是一个从0到相应的信号量集的资源总数(ipc_perm.sem_nsems)之间的整数。sem_op指明所要执行的操作,sem_flg说明函数semop的行为。sem_op的值是一个整数,如表2所示,列出了详细sem_op的值及所对应的操作。
sem_op值详解
Sem_op
操 作
正数
释放相应的资源数,将sem_op的值加到信号量的值上
0
进程阻塞直到信号量的相应值为0,当信号量已经为0,函数立即返回。如果信号量的值不为0,则依据sem_flg的IPC_NOWAIT位决定函数动作。sem_flg指定IPC_NOWAIT,则semop函数出错返回EAGAIN。sem_flg没有指定IPC_NOWAIT,则将该信号量的semncnt值加1,然后进程挂起直到下述情况发生。信号量值为0,将信号量的semzcnt的值减1,函数semop成功返回;此信号量被删除(只有超级用户或创建用户进程拥有此权限),函数smeop出错返回EIDRM;进程捕捉到信号,并从信号处理函数返回,在此情况将此信号量的semncnt值减1,函数semop出错返回EINTR
负数
请求sem_op的绝对值的资源。如果相应的资源数可以满足请求,则将该信号量的值减去sem_op的绝对值,函数成功返回。当相应的资源数不能满足请求时,这个操作与sem_flg有关。sem_flg指定IPC_NOWAIT,则semop函数出错返回EAGAIN。sem_flg没有指定IPC_NOWAIT,则将该信号量的semncnt值加1,然后进程挂起直到下述情况发生:当相应的资源数可以满足请求,该信号的值减去sem_op的绝对值。成功返回;此信号量被删除(只有超级用户或创建用户进程拥有此权限),函数smeop出错返回EIDRM:进程捕捉到信号,并从信号处理函数返回,在此情况将此信号量的semncnt值减1,函数semop出错返回EINTR
基本流程
编辑
下面实例演示了关于信号量操作的基本流程。程序中使用semget函数创建一个信号量集,并使用semop函数在这个信号集上执行了一次资源释放操作。并在shell中使用命令查看系统IPC的状态。
(1)在vi编辑器中编辑该程序。
程序清单14-10 create_sem.c 使用semget函数创建一个信号量
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int sem_id
int nsems = 1
int flags = 0666
struct sembuf buf
sem_id = semget(IPC_PRIVATE, nsems, flags)/*创建一个新的信号量集*/
if ( sem_id <0 ){
perror( "semget ")
exit (1 )
}
/*输出相应的信号量集标识符*/
printf ( "successfully created a semaphore : %d\n", sem_id )
buf.sem_num = 0/*定义一个信号量操作*/
buf.sem_op = 1/*执行释放资源操作*/
buf.sem_flg = IPC_NOWAIT/*定义semop函数的行为*/
if ( (semop( sem_id, &buf, nsems) ) <0) { /*执行操作*/
perror ( "semop")
exit (1 )
}
system ( "ipcs -s " )/*查看系统IPC状态*/
exit ( 0 )
}
(2)在vmware中编译该程序如下:
gcc -o a.o testc_semaphore.c
(3)在shell中运行该程序如下:
./a3.o
successfully created a semaphore : 0
------ Semaphore Arrays --------
key semid owner perms nsems
0x00000000 0 zcr 666 1
在上面程序中,用semget函数创建了一个信号量集,定义信号量集的资源数为1,接下来使用semop函数进行资源释放操作。在程序的最后使用shell命令ipcs来查看系统IPC的状态。
%注意:命令ipcs参数-s标识查看系统IPC的信号量集状态。
希望能帮到你,满意望采纳哦。
#include#include
#include
#include types.h>
#include msg.h>
#include
#include ipc.h>
void msg_show_attr(int msg_id, struct msqid_ds msg_info)
{
int ret = -1
sleep(1)
ret = msgctl(msg_id, IPC_STAT, &msg_info)
if( -1 == ret)
{
printf(获消息信息失败\n)
return
}
printf(\n)
printf(现队列字节数:%d\n,msg_info.msg_cbytes)
printf(队列消息数:%d\n,msg_info.msg_qnum)
printf(队列字节数:%d\n,msg_info.msg_qbytes)
printf(发送消息进程pid:%d\n,msg_info.msg_lspid)
printf(接收消息进程pid:%d\n,msg_info.msg_lrpid)
printf(发送消息间:%s,ctime(&(msg_info.msg_stime)))
printf(接收消息间:%s,ctime(&(msg_info.msg_rtime)))
printf(变化间:%s,ctime(&(msg_info.msg_ctime)))
printf(消息UID:%d\n,msg_info.msg_perm.uid)
printf(消息GID:%d\n,msg_info.msg_perm.gid)
}
int main(void)
{
int ret = -1
int msg_flags, msg_id
key_t key
struct msgmbuf{
int mtype
char mtext[10]
}
struct msqid_ds msg_info
struct msgmbuf msg_mbuf
int msg_sflags,msg_rflags
char *msgpath = /ipc/msg/
key = ftok(msgpath,’a')
if(key != -1)
{
printf(功建立KEY\n)
}
else
{
printf(建立KEY失败\n)
}
msg_flags = IPC_CREAT
msg_id = msgget(key, msg_flags|0666)
if( -1 == msg_id)
{
printf(消息建立失败\n)
return 0
}
msg_show_attr(msg_id, msg_info)
msg_sflags = IPC_NOWAIT
msg_mbuf.mtype = 10
memcpy(msg_mbuf.mtext,测试消息,sizeof(测试消息))
ret = msgsnd(msg_id, &msg_mbuf, sizeof(测试消息), msg_sflags)
if( -1 == ret)
{
printf(发送消息失败\n)
}
msg_show_attr(msg_id, msg_info)
msg_rflags = IPC_NOWAIT|MSG_NOERROR
ret = msgrcv(msg_id, &msg_mbuf, 10,10,msg_rfla
共享内存示例代码:
#include
#include sem.h>
#include ipc.h>
#include
typedef int sem_t
union semun {
int val
struct semid_ds *buf
unsigned short *array
} arg
sem_t CreateSem(key_t key, int value)
{
union semun sem
sem_t semid
sem.val = value
semid = semget(key,value,IPC_CREAT|0666)
if (-1 == semid)
{
printf(create semaphore error\n)
return -1
}
semctl(semid,0,SETVAL,sem)
return semid
}
/*
struct sembuf{
ushort sem_num
short sem_op
short sem_flg
}
*/
void SetvalueSem(sem_t semid, int value)
{
union semun sem
sem.val = value
semctl(semid,0,SETVAL,sem)
return
}
int GetvalueSem(sem_t semid)
{
union semun sem
return semctl(semid,0,GETVAL,sem)
return sem.val
}
void DestroySem(sem_t semid)
{
union semun sem
sem.val = 0
semctl(semid,0,IPC_RMID,sem)
}
int Sem_P(sem_t semid)
{
struct sembuf sops={0,+1,IPC_NOWAIT}
return (semop(semid,&sops,1))
}
int Sem_V(sem_t semid)
{
struct sembuf sops={0,-1,IPC_NOWAIT}
return (semop(semid,&sops,1))
}
static char msg[]=共享内存\n
int main(void)
{
key_t key
int semid,shmid
char i,*shms,*shmc
struct semid_ds buf
int value = 0
char buffer[80]
pid_t p
key = ftok(/ipc/sem/,’a')
shmid = shmget(key,1024,IPC_CREAT|0604)
semid = CreateSem(key,1)
p = fork()
if(p >0)
{
/* 父进程 */
/* 建立共享内存 */
shms = (char *)shmat(shmid,0,0)
memcpy(shms, msg, strlen(msg)+1)
sleep(10)
Sem_P(semid)
shmdt(shms)
DestroySem(semid)
}
else if(p == 0)
{
shmc = (char *)shmat(shmid,0,0)
Sem_V(semid)
printf(共享内存值:%s\n,shmc)
shmdt(sg_
基本知识一:音变备注:
1.字母的音变又称字母的通转,是原始印欧语根在梵语,原始日耳曼语,希腊语,拉丁语,
意大利语,法语,西班牙语,英语等诸多子语言中发生的一种元音字母和辅音字母通转的语
言现象,简言之,就是在拼写上虽然字母发生变化,但是其词根义或基础义不变。语言学者
最早在原始印欧语和原始日耳曼语的对比研究中发现这一现象和规律,即“格林定律”和“维
尔纳定律”,后来又有诸多规律性的语言现象被发现。虽然人们发现了这些语言变化的现象
和规律,但其成因机制尚不完全明确。
2.音变对初学者而言比较难以理解,因而,初学者初次接触音变知识,对音变知识有一基本
的了解和概念即可。随着对词根词缀知识认识的加深和接触的词汇增加,我们对音变知识的
认识也将随之理解得更加深刻。
1.元音音变(a-e-i-o-u)
例 1:基本词 same,一样的,同源词 assemble,similar,some.
例 2:基本词 ball,球,同源词 ballot,belly,bill,boll,bull,bullet.
例 3:基本词 band,绑扎,同源词 bend,bind,bond,bundle.
例 4:基本词 road,马路,公路,同源词 ride,raid,ready.
注解:
例 1:基本词 same,一样的,其词根为-sam,一,根据元音音变产生词根变化形式-sem,-sim,-som,
其同源词 assemble,来自前缀 as-,向前,朝向,词根-sem,一,字 面意思即使成为一体,引申
义组装;similar 即看起来一样的,相似的;some 即一些。
例 2:基本词 ball,其词根为-ball,鼓起,球,根据元音音变产生词根变化形式-bell,-bill,-boll,-bull,
其同源词 ballot,来自-ball,球,-ot,小词后缀,字面意思即小球,引申比喻义投票,来自古人
用黑白球投票的习俗,如 blackball,字面意思为黑球,黑球代表反对,因而引申词义反对票;
belly 来自词根-bell,球,-y,表亲昵,字面意思即小球,引申比喻义肚子;bill 字面意思为小球,
后代指封蜡,小蜡球,原指教皇下发给教会的教旨文件,封蜡代表其权威,因而引申比喻义
官方文件或法律文件,后词义扩大为议案,法案,帐单等,其原义见 bull,教皇诏书;boll
即像球一样的物体,后用于指棉铃,棉花球;bullet 来自-bull,球,-et,小词后缀,字面意思即
小球,引申比喻义子弹。
例 3:基本词 band,绑扎,其词根为-band,绑扎,捆绑,根据元音音变产生词根变化形式
-band,-bend,-bind,-bond,-bund,捆绑,绑扎,其同源词 band 来自其基本词义绑扎,引申名词词
义带子,小布条,其比喻义乐队原为军事术语,原指冲锋的战士头上绑一条布带,类似于现
在的敢死队,后早期的乐队模仿这一动作,因而引申词义乐队;bend 原指捆绑弓箭,引申
词义使弯曲;bind 即捆绑,束缚;bond 来自这一词根所引申的比喻义,用于指债券,公债,
捆绑,结合等;bundle 来自词根-bund,捆绑,-le,小词后缀,字面意思即小捆。
例 4:基本词 road,马路,其词根为-rid,骑,骑行,根据元音音变的双元音变化产生词根变化
形式-road,-raid,-read,骑,骑行,其同源词 road 原指骑马的小道或小径,后词义扩大为马路,
公路;ride 原指骑马,后词义扩大为骑车等;raid 原指古代骑兵突袭或强盗骑马抢劫,后引
申词义突袭,劫掠等;ready 来自词根-read,骑,骑马,原指准备骑马出远门,后词义通用为
准备好的。
6
2.辅音音变
2.1) b-f-p-v,w
b-f: brother 兄弟-fraternity 兄弟会 break 打破-fragment 碎片
b-p: be 存在-physics 物理 bore 钻孔-perforate 穿孔
b-v: biology 生物学-vivid 有生命的 rebel 造反-revel 狂欢
f-p: foot 脚-pedal 脚踏 father 父亲-paternal 父亲的
p-v: concept 概念-conceive 形成 September 七月,九月-seven 七
综合:library 图书馆-libel 小传单,诽谤-leaf 树叶-leprosy 叶片状,麻风病
rob 撒开,抢劫-rift 撕开,裂缝-rip 撕开-river 撕开,河流
注解:
b-f:
例词 brother 其词根为-bro,兄弟,其音变词根变化形式-fra,兄弟,-ther,-ter,表亲属关系后缀;
fraternity 字 面 意 思 即 兄 弟 情 谊 , 后 用 于 指 兄 弟 会 等 , 其 更 多 同 源 词 如
fraternal,fraternize,confraternity.
例词 break 其词根为-br,-break,打破,破碎,其音变词根变化形式-for,-frag,打破,破碎;fragment
来自词根-frag,破碎,-ment,名词后缀。
b-p:
例词 be 其词根为-be,生长,存在,其音变词根变化形式-phy,生长,存在;physics 来自词根
-phy,-phys,生长,存在,-ics,学科,字面意思即研究万物生长或存在的学科,即物理学。
例词 bore 其词根为-bor,钻,打破,打穿,其音变词根变化形式-for,钻,打破,打穿,引申比
喻义单调,使厌烦;perforate 来自前缀-per,完全,-for,钻,即完全钻过去,完全打穿。
b-v:
例词 biology 其词根为-bio,生命,其音变词根变化形式-viv,生命,-logy,学科,字面意思即有
关生命的学科;vivid 来自词根-viv,生命,-id,形容词后缀,字面意思即有生命的,引申词义
鲜活的等。
例词 rebel 来自前缀 re-,向后,相反,词根-bel,战争,字面意思即相反的战争,引申比喻义造
反,反抗;revel 为该词的拼写变化形式,即如同造反,用于比喻义狂欢。
f-p:
例词 foot 来自词根变化形式于-ped,脚;pedal 来自词根-ped,脚,-al,名词后缀,字面意思即与
脚类似之物,用于指自行车踏板,钢琴脚踏板等。
例词 father 来自词根变化形式于-pater,父亲;paternal 来自词根-pater,父亲,进一步来自词根
-pa,抚养,-ter,-ther,表亲属关系后缀。
p-v:
例词 concept 来自前缀 con-,一起,-cept,拿,抓住,其词根变化形式-ceive,拿,抓住,字面意
思即拿到一起,抓到一起,引申比喻义形成概念;conceive 构成该词的动词形式。
例词 September 来自词根-sep,-sept,七,来自 seven 的音变形式,September 在古拉丁语指七
月,因古罗马历法原仅有 10 个月,后人们认识到 10 个月的不科学性,故在“儒略历”改革
时新增 January,February,而原先的 September,October,November,December 则由七月,八月,
九月,十月顺延成九月,十月,十一月,十二月。
综合:
例词 library 来自词根-liber,书,进一步来自-lib,叶片,树叶,其词根变化形式-leaf,-leper,-lepro,
叶片,树叶,-ary,表集合,字面意思即书集中的地方,图书馆;libel 来自词根-lib,树叶,叶
片,-el,小词后缀,字面意思即小叶片,传单,后用于比喻义指诽谤人的小传单,后词义通
用化为诽谤;leprosy 来自词根-leper,树叶,叶片,-sy,形容词后缀,字面意思即叶片一般,
7
用于委婉语代指麻风病,因麻风病病人的皮肤如同剥落的树叶而得名。
例词 rob 来自词根-rob,撕,扯,根据元音和辅音音变产生词根变化形式-rif,-rip,-riv,撕,扯。
rob 由撕,扯引申词义撕开,抢劫;rift 构成该词根的名词形式,用于指裂缝;rip 来自该词
根的本义,撕开,扯开;river 来自该词根的引申义将陆地劈开,形成河流。该词根复合词
如 bereave,丧失亲人,来自 be-,使,-reave,撕开,扯开,bereft 构成该词的名词形式。
2.2) c-h-k
c-h: cordial 热心的-heart 心 carrot 胡萝卜-horn 角
综合:canine 狗的-hound 狗-kennel 狗舍
注解:
c-h:
例词 cordial 来自词根-cord,心,-al,-ial,形容词后缀;heart 来自该词根的音变形式。
例词 carrot 来自词根-car,角,-ot,小词后缀,字面意思即小角,用于比喻义指胡萝卜;horn
来自该词根的原义,拼写来自该词根的音变鼻音化形式。
综合:
例词 canine 来自词根-can,狗,来自拟声构词法,-ine,形容词后缀;hound 来自该词根的音变
形式;kennel 来自该词根的音变形式,-el,小词后缀,字面意思即小狗,后用于指狗舍。
2.3) c-g-k
c-g: cling 粘附-glue 胶水 cholesterol 胆固醇-gall 胆囊
c-k: canine 狗的-kennel 狗舍 church 教堂-kirk 苏格兰教会
g-k: goat 山羊-kid 小山羊,小孩 gene 基因-kind 种类
综合: corn 谷物-grain 颗粒-kernel 仁,籽
can 知道,能够-diagnosis 诊断-know 知道
注解:
c-g:
例词 cling 来自词根-cl,粘,-ing,动词后缀;glue 来自该词根的音变形式。
例词 cholesterol 来自词根-chol,胆,-ster,固,-ol,油,醇;gall 来自该词根音变拼写变化形式。
c-k:
例词 canine 来自词根-can,狗,来自拟声构词法,-ine,形容词后缀;kennel 来自该词根的音变
形式,-el,小词后缀,字面意思即小狗,后用于指狗舍。
例词 kirk 构成 church 的音变形式。
g-k:
例词 kid 来自 goat 的音变拼写变化形式,kid 原义为小山羊,后用于口语指小孩;gene 来自
词根-gen,生育,产生,kind 来自该词根的音变形式,其原义为生下来的同类,相同种类,种
族,家族,引申形容词比喻义同种类的,友好的。
综合:
例词 grain 来自词根-gr,-ger,颗粒;corn 来自该词根的音变鼻音拼写变化形式;kernel 来自该
词根的音变鼻音拼写变化形式,-el,小词后缀。
例词 can 来自词根-gn,-gen,知道,了解,引申词义能够;diagnosis 来自前缀 dia-,穿过,-gn,
知道,了解,-sis,希腊语名词后缀,字面意思即整体了解,引申词义诊断;know 来自该词
根的音变拼写变化形式。
2.4) c-p-t
8
综合: cycle 圆圈-pole 地极-telephone 远的声音,电话
综合:
例词 pole 来自词根-pol,转,用于比喻义指地极,即假想中地球围绕该地极转圈;cycle 由
-cy+-cle 两部分构成,其中-cy 构成-cle 的重复形式,-cle 来自该词根的音变形式;telephone
来自词根-tele,远的,-phone,声音,即远处传来的声音,用于科技名词指电话,其中-tel 来自
该词根的音变形式,原义为循环,绕一圈,后引申词义远的,遥远的,对应 paleo-,遥远的,
paleolithic,古石器时代的,Paleozoic,古生代的。
2.5) c-f-q-t
综合: cadre 四方形框架,干部-carrefour 家乐福超市-four 四-quadraphonic 四声道的-quarter
四分之一-tetrameter 四音步诗
注解:
综合:cadre 来自法语,来自词根-quadr,四,原指四方形的画框或框架,后用于指骨干,干
部;carrefour 来自法语,来自-carre,四,字母 d 脱落,-four,叉子,分岔,词源同 fork,叉子,
用于比喻义指十字路口,交通大道,后用于家乐福超市品牌名;four 来自词根-quadr,四;
quadraphonic 来自词根-quadr,四,-phon,声音;quarter 来自词根-quart,异化自-quadr,四,四分
之一;tetrameter 来自词根-tetra,四,反复形式于-tra,四,音变形式于-quart,四,-meter,音步,
韵律。
2.6) d
d-f: do 做-fact 即成事实 door 门-forum 门外广场,论坛
d-t: dean 十夫长-ten 十 dental 牙齿的-tooth 牙齿
d-z: diva-Zeus 神,宙斯 odor 气味,臭味-ozone 臭氧
注解:
d-f:
例词 do 来自原始印欧语根 PIE*dhe,做,fact 来自该词根的音变形式。
例词 door 来自词根-door,门,forum 来自该词根的音变形式,-um,拉丁语阳性格后缀,该词
字面意思为门外,城门外,后原于指古罗马的城门外大广场,兼做论坛及市民表达意见之所。
该词根同源词还包括 forensic,forest.
d-t:
例词 dean 缩写自词根-dec,-decem,十,原指古罗马军队的十夫长,后用于现代词义指教务长,
系主任等;ten 为该词的音变形式。该词根还包括同源词 decade,December,decimal,decimate.
例词 dental 来自词根-dent,牙齿,-al,形容词后缀;tooth 来自该词根的音变形式。
d-z:
例词 diva 来自拉丁语,来自词根-div,神,-a,拉丁语阴性格后缀,该词在拉丁语中词义为女神,
后在意大利语引申词义女高音歌唱家等,对应拉丁语阳性格为 divus,男神;Zeus 来自词根-ze,
神,来自该词根音变形式,-us,拉丁语阳性格后缀。
2.7) d-l-z
综合: odor 气味,臭味-olfactory 嗅觉的-ozone 臭氧
注解:
综合:
例词 odor 来自词根-od,嗅,闻,-or,名词后缀;olfactory 来自词根-ol,嗅,闻,来自该词根的
音变形式,-fact,做,行为,-ory,形容词后缀;ozone 来自-oz,嗅,闻,来自该词根的音变形
9
式,-one,化学名词后缀,字面意思即难闻的气体,用于指化学物质臭氧。该词根还包括同源
词 redolent,引起回忆的,引起联想的,来自前缀 red-,再,来自前缀 re-在元音前的拼写异化
形式,-ol,嗅,闻,-ent,形容词后缀。
2.8) g
g-h: garden 菜园,花园-horticulture 园艺学 guest 陌生人,客人-hostile 敌对的
g-q: gynecology 妇科-queen 女人,女王,皇后
g-w:guard 看守-ward 保卫 guerrilla 小战争,游击战-war 战争
g-y:garden 花园-yard 庭院 gold 黄金-yellow 黄色的
注解:
g-h:
例词 garden 来自词根-gard,园子,-en,小词后缀;horticulture 来自词根-hort,园子,来自该词
根的音变形式,-culture,栽培,耕作。
例词 guest 来自词根-guest,陌生人,客人;hostile 来自词根-host,陌生人,来自该词根的音变
形式,-ile,形容词后缀,字面意思即陌生人的,引申词义敌对的。
g-q:
例词 gynecology 来自词根-gyn,-gyneco,女人,-logy,学科;queen 来自该词根的音变形式,原
指高贵的女人,后词义进一步褒义化,用于指女人,皇后。
g-w:
例词 guard 音变自词根-ward,保卫,看护。
例词 guerrilla 音变自词根-war,战争,-illa,小词后缀,字面意思即小战争,特用于指游击战。
g-w:
例词 garden 来自词根-gard,园子,-en,小词后缀;yard 来自该词根的音变形式。
例词 gold 来自词根-gl,发光,光泽,yellow 来自该词根音变形式。该词根还包括同源词
glass,gloss,gilt.
2.9) g-b-d
g-b: gravity 重力-baron 重量级人物,男爵 rage 发狂的-rabies 狂犬病
g-d: glucose 葡萄糖-dulcet 甜蜜的
综合:red 红色的-ruby 红宝石-rouge 胭脂
注解:
g-b:
例词 gravity 来自词根-grav,重,-ity,名词后缀;baron 来自词根-bar,重,-on,人,字面意思即
重量级人物,用于称呼指男爵。该词根还包括同源词 guru,grave,isobar,barometer.
例词 rage 音变自词根-rab,发狂;rabies 来自词根-rab,发狂,特用于指狂犬病。
例词 glucose 音变自词根-dulc,甜,甜蜜,-ose,化学名词后缀,糖。
综合:
例词 red 来自词根-red,红色;ruby 来自该词根音变形式,用于指红宝石;rouge 来自该词根
音变形式,用于指胭脂。该词根同源词还包括 rubric,ruddy,rust,rustic.
2.10) j-y
j-y: junior 更小的,更年青的-young 年青的 major 主要的-mayor 市长
注解:
j-y:
10
例词 junior 音变形式于词根-yun,-yuven,小的,年青的,-or,比较级后缀;young 来自该词根
扩大形式。该词根同源词还包括 juvenile,rejuvenate.
例词 major 音变形式于词根-may,力量,权力,-or,比较级后缀;mayor 来自词根-may,力量,
权力,-or,人。该词根同源词还包括 may,might,mighty.
2.11) l
l-u: salt 盐-sauce 调味汁&souse 腌制 molasses 糖浆-mousse 蜜,奶油,定型摩斯
l-r: flair 嗅觉力,天资-fragrance 气味,芳香 plum 梅子-prune 梅子干
注解:
l-u:
字母 l 与字母 u 的音变多发生于法语,实质上为字母 l 软化成字母 u.
例词 salt 来自词根-sal,盐;sauce 来自该词根的音变软化形式,该词字面意思即以盐为主要配
料的调料;souse 即以盐为主要原料进行腌制。
例词 molasses 来自词根-mol,蜜,甜,-ass,名词后缀,用以指糖浆;mousse 来自该词根的音
变软化形式,用以指加蜜的奶油,后主要用于指发胶,定型摩斯,因其形如糖浆而得名。
l-r:
字母 l 和 r 同属流音字母,因而字母 l 和 r 的音变属于流音音变。
例词 flair 音变+缩写自词根-frag,-fragr,闻,嗅,原指狗敏锐的嗅觉力,后用于形容人的天资
和能力;fragrance 来自词根-frag,-fragr,闻,嗅,可能来自该词根的原始含义打破,破开,即
从破开的物体中散发出来的气味,-ance,名词后缀。
例词 plum 音变自 prune,在词义上 plum 用于指李子,梅子,prune 用于指李子干,梅子干。
2.12) m-n
m-b: melt 融化-bland 平和的,无味的 merry 欢乐的-brief 短暂的
m-n: home 家-haunt 家,萦绕 lamp 灯,电灯-lantern 灯笼
注解:
m-b:
例词 melt 来自词根-mel,磨,磨软;bland 来自该词根音变形式,-and,形容词后缀,字面意思
即软的,用于比喻义指平和的,无味的;其原始含义见 blandish,表动词,讨好,谄媚,
blandishment,表名词,讨好,谄媚。
例词 brief 来自词根-br,短的;merry 来自该词根音变形式,-y,形容词后缀,字面意思为短暂
的,后用于比喻义指欢乐的,取“欢乐总是短暂”之义。
m-n:
字母 m 和字母 n 同属鼻音字母,因而字母 m 和字母 n 的音变属于鼻音音变。
例词 haunt 来自 home 的鼻音音变形式,原指人死后鬼魂在屋子里萦绕不散,并引申诸相关
比喻义。
例词 lamp 来自词根-lam,发光,照明;lantern 来自该词根的鼻音音变形式,-ern,表相关,后
主要用于指灯笼。
2.13) s-h
s-h: same 一样的-homosexual 同性的 sweet 甜的-hedonist 享乐主义者
s-r: vest 衣服,背衣-wear 穿 east 东方的-aurora 晨光
s-z: glass 玻璃-glaze 装玻璃 grass 草-graze 吃草
注解:
11
s-h:
字母 s 和字母 h 的音变主要发生在原始印欧语字母 s 希腊语字母 h 之间。
例词 same 来自词根-sam,一;homosexua 来自词根-homo,一,来自该词根的音变形式,sexual,
性的,与性相关的。
例词 sweet 来自词根-suad,甜,蜜;hedonist 来自希腊语,来自词根-hedon,-hed,甜,蜜,-ist,
人,字母意思即在蜜罐里长大的人。该词根同源词还包括 persuade,dissuade 等。更多音变形
式参照 super-,hyper-,sub-,hypo-,seven,heptagon.
s-r:
字母 s 和 r 的音变又称字母 s 的 r 音化或流音化。
例词 vest 来自词根-vest,衣服;wear 来自该词的 r 音化形式。
例词 east 来自词根-eas,-east 发光,后用于指太阳升起的方向;aurora 来自拉丁语 Aurora,原
指古罗马神话中的晨光女神,来自词根-aur,发光,来自该词根的音变形式,-or,人,-a,拉丁
语阴性格后缀。该词根还包括同源词 Austria,奥地利,即南方的国家,Australia,澳大利亚,
即南半球的国家。
s-z:
例词 glass 来自词根-gl,发光,明亮,用于比喻义指玻璃;glaze 来自该词的音变形式。
例词 grass 来自词根-gr,生长,成长,用于比喻义指草;graze 来自该词的音变形式。该词还
包括同源词 create,crew,grow,green.
2.14) sp-f
sp-f: splint 碎木条,夹板-flint 隧石 spume 泡沫-foam 泡沫
注解:
sp-f:
例词 splint 来自词根-spl,分开;flint 来自该词的音变形式。该词同源词还包括 split,spill,spoil.
例词 spume 来自词根-sp,吐,喷吐,用于比喻义指泡沫;foam 来自该词的音变形式。该词还
包括同源词 spit,spittle,spittoon.
2.15) t
t-c: spatial 空间的-space 空间 fortify 加强-force 力量
t-f: throne 王位-firm 稳固的 theology 神学-festival 宗教节日
t-l: tongue 舌头-language 语言 tear 眼泪-lachrymose 流泪的
注解:
t-c:
例词 spatial 来自词根-spat,展开,空间,-ial,形容词后缀;space 来自该词根的音变形式。
例词 fortify 来自词根-fort,力量,-fy,使;force 来自该词根的音变形式。更多例词包括
grace,gratify,vice,vitiate.
t-f:
例词 throne 来自词根-tr,-thr,硬,坚固,来自词根-dur 的音变形式,-one,-oon,大词后缀,用于
比喻义指王位稳固,稳固的王位;firm 来自词根-dur 的音变形式。该词根同源词还包括
tree,true,truth,troth,during,endure,dharma.
例词 theology 来自词根-theo,神,-logy,学科;festival 来自词根-fest,神,引申词义祭祀,宗教
节日,来自该词根的音变形式。更多同源词包括 theist,theism,enthusiasm,enthusiast.
t-l:
例词 tongue 来自词根-tong,舌头;language 来自词根-lang,舌头,引申词义说话,语言,来自
12
该词根的音变形式,-age,名词后缀。该词根同源词还包括 linguist,bilingual.
2.16) v-w
v-w:virile 男人的-werewolf 狼人 vitreous 如水的,玻璃的-water 水
注解:
v-w:
字母 w 本身为两个字母 v 的合成词。
例词 virile 来自词根-vir,男人,-ile,形容词后缀;werewolf 来自词根-wer,人,男人,wolf,狼,
字面意思即人狼,用于指西方传说中在黑夜中化身为狼的人。该词根同源词还包括 virtue,
男人的品德,男人所需要具备的基本道德。
例词 vitreous 来自词根-vit,湿的,-er,表物,-ous,形容词后缀;water 来自词根-wat,湿的,-er,
表物。该词根同源词还包括 wet,otter,vitriol,vitriolic.
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)