사용자는 응용 프로그램이나 운영체제 패키지에 포함된 GUI와 도구 프로그램(툴/유틸리티 프로그램)을 통해 컴퓨터를 활용한다.하드웨어들은 모두 운영체제의 배타적이고 독점적인 지배를 받는다.사용자와 응용프로그램은 직접 하드웨어에 접근할 수 없고, 반드시 운영체제를 통해서만
프로그램: 저장장치에 저장된 실행가능한 파일프로세스: 프로그램이 메모리에 적재되어 실행중일 때 프로세스라고 부르며,프로세스들은 서로 독립적인 메모리 공간을 가지므로 다른 프로세스 영역에 접근할 수 없다. 또 운영체제는 프로세스마다 고유한 번호(프로세스 ID)를 할당하고
프로세스 생성과 컨텍스트 스위칭의 큰 오버헤드프로세스 사이의 통신 어려움프로세스를 사용하는 문제점 해결을 위해 \-> 프로세스보다 더 작은 스케줄링(실행)단위가 필요\-> 프로세스의 생성 및 소멸에 따른 오버헤드 저감\-> 빠른 컨텍스트 스위칭\-> 프로세스사이 통신에
다수의 스레드가 공유 데이터를 동시에 접근하는 충돌 상황에서 공유 데이터가 훼손되지 않도록 스레드의 실행을 제어하는 기법\-> 한 스레드가 공유 데이터에 대해 배타적이고 독점적으로 접근, 임계구역에 대한 상호배제 구현예시두 학생 : 스레드 T1, T2공유 집계판 : 공