벨 연구소, MIT, GE 에서 공동 개발한 운영체제
사용자 > 유틸리티 > 쉘 > 커널 > 하드웨어
커널: 프로그램과 하드웨어간 인터페이스 역할, 부팅시 주기억장치에 상주, CPU 스케줄링 관리, 기억장치 관리, 입출력 관리, 파일 관리, 데이터 전송 및 변환 등 여러 기능 수행
✓ 시스템 호출: 프로세스가 커널에 접근하기 위한 인터페이스 제공하는 명령어
쉘(Shell): 명령어 인식 및 해석기, 시스템과 사용자 간의 인터페이스, 명령어 포함된 파일 형태로 존재하며 보조기억장치에서 교체처리 가능, 파이프라인 기능 지원, 공용 Shell 이나 직접 만든 Shell 사용 가능
✓ 둘 이상의 명령을 함께 묶어 처리한 결과를 다른 명령의 입력으로 전환하는 기능
유틸리티: 에디터, 컴파일러, 인터프리터, 디버거
✓ 파일 디스크립터: OS가 필요로 하는 파일에 대한 정보 가진 제어블록, 파일제어블록(FCB)라고도 함. 파일마다 독립적으로 존재, 보조기억장치 내에 저장되어 있다 해당 파일이 오픈될 때 주기억장치로 이동, 파일 시스템이 관리하므로 사용자가 직접 참조 X
가상기억장치: 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용
✓ 주소 변환: 논리적 가상주소를 물리적 실기억주소로 변환하는 것, 주소 매핑이라고도 함
✓ 인위적 연속성: 가상주소를 실주소로 바꾸어줄 때 프로세스가 갖는 가상주소 공간 상 연속적 주소가 실저장장치에서 연속적일 필요가 없다는 성질
가상기억장치 프로그램과 주기억장치의 영역 동일한 크기로 나눈 후 나눠진 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영역(페이지 프레임)에 적재시켜 실행하는 방법
가상기억장치 내 프로그램을 다양한 크기의 논리단위로 나눈 후 주기억장치에 적재시킴
페이지 크기와 페이지 수는 반비례함
Locality(국부성, 지역성, 구역성, 국소성)는 프로세스 실행 동안 주기억장치 참조시 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론
프로세스가 일정 시간동안 자주 참조하는 페이지들의 집합
프로세스 처리시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
: 프로세서(처리기, CPU)에 의해 정의되는 실행중 프로그램으로, Job 또는 Task 라고도 함. 비동기적 행위 일으키는 주체.
OS가 프로세스에 대한 중요한 정보 저장해 놓는 곳
: 현재 상태, 포인터, 고유 식별자, 스케줄링 및 우선순위, 레지스터 정보, 주기억장치 관리 정보, 입출력상태 정보, 계정정보 저장
제출(Submit) -> 접수(Hold) -> 준비(Ready) <->(대기 Wait)<-> 실행(Run) -> 종료(Exit)
프로세스 내 작업단위
1프로세스:1스레드 => 단일 스레드, 1프로세스:n스레드 => 다중 스레드
서비스 실행 시간이 짧거나 대기시간이 긴 프로세스의 경우 우선순위가 높아짐
할당된 네트워크 주소를 다시 여러개의 작은 네트워크로 나누어 사용
예제
"3개의 서브넷으로 나눈다"
=> 3을 표현할 앞자리 2비트만 제외하고 나머지 6비트로 호스트 구성
IPv4의 주소부족 문제 해결하기 위해 개발
다음과 같이 세 가지 주소체계로 나누어짐
: 전기적, 기능적, 절차적 기능 정의
리피터; 신호가 왜곡되거나 약해질 경우 원래형태로 재생하여 다시 전송
: 두개의 인접한 통신시스템 사이에 동기화, 흐름 제어, 에러 제어
브리지; LAN-LAN 연결 또는 LAN-세그먼트 연결
스위치; 더 큰 LAN을 만드는 장치
: 경로 설정 및 네트워크 연결 관리
라우터; LAN 연결기능에 데이터 전송의 최적경로 선택기능 추가
: 단말기 사이에 오류 수정과 흐름제어 수행 (데이터링크와 구분)
: 대화 제어
게이트웨이; 세션계층-표현계층-응용계층 연결
: 코드 변환, 데이터 암호화, 데이터 압축 등
: 사용자가 OSI 환경에 접근할 수 있는 서비스 제공
다른 기종의 컴퓨터들이 데이터 주고받을 수 있게 하는 표준 프로토콜
: 이더넷, IEEE 802, HDLC, X.25, RS-232C
👉🏻 IEEE 802는 LAN, IEEE 802.3은 CSMA/CD를 위한 표준