CS 72

[운영체제] 프로세스 제어구조

프로세스 제어는 3가지 작업으로 나뉜다. 1) 수행모드 2) 프로세스 생성 3) 프로세스 교환 ▷ 수행모드 처리기의 수행모드는 두 가지로 나뉜다. 1. 커널모드 2. 유저모드 커널모드란 처리기가 커널 명령어를 실행하는 상태를 의미하고 유저모드란 처리기가 유저 명령어를 실행하는 상태를 의미한다. CPU는 PSW( 프로그램 상태 워드 ) 레지스터로 시스템 상태를 저장하는데, 이때 PSW 중 1bit가 수행모드를 나타낸다. 0이면 사용자모드, 1이면 시스템모드이다. 그렇다면 커널 명령어와 유저 명령어를 두 가지 모드로 구분하여 처리하는 것일까? 지난 포스팅을 예로 들어보겠다. 준비큐에 들어있는 프로세스는 OS의 제어에 따라 처리기를 할당받아 처리된다. PCB1 할당 -> 디스패치 -> PCB2 할당 -> 디스..

CS/OS 2021.10.11

[운영체제] 프로세스 상태

한정된 자원( 처리기 및 메모리 )을 여러 프로세스가 공유하려면 OS는 한 가지 프로세스가 처리기 및 메모리를 독점하지 않고 인터리빙(Interleaving) 할 수 있도록 지원해야한다. OS의 주요 업무는 2가지이다. 1. 프로세스 수행을 인터리빙하는 패턴 결정 2. 프로세스 자원 할당 2가지 주요 업무는 프로세스 상태와 관련있다. 프로세스 상태 프로세스 상태는 기본적으로 두 가지로 나뉠 수 있다. 수행중이냐 비수행중이냐. 지난 포스팅에서 다루었던 바와 같이, OS는 PCB 자료구조로 프로세스를 관리한다. 준비큐에 PCB가 대기하면 비수행이고 처리기를 할당받으면 수행중이다. OS는 프로세스를 Switch하는 디스패처(Dispachter) 프로그램을 이용하여 처리기를 다른 프로세스에 할당한다.(디스패치)..

CS/OS 2021.10.11

[운영체제] PCB의 구성요소

처리기는 하드웨어 자원으로 한정되어 있다. 그러므로 여러 프로세스가 처리기를 사용하려면 이용순서를 정해야하는데, 이를 스케줄링(Scheduling)이라 부른다. OS가 스케줄링을 담당한다. OS는 PCB를 통해 프로세스를 식별한다. 그러므로 PCB에는 처리기 사용을 위한 모든 정보가 들어있어야 한다. 위 그림은 처리기 문맥교환(Context Change)이 일어나는 간략한 다이어그램이다. OS는 스케줄링을 위해 Queue 자료구조를 이용한다. Queue 자료구조에는 PCB의 주소가 들어간다. PCB 객체가 큐에 들어가면 Queue 자료구조가 방대해지기 때문에 비효율적이다. Queue 자료구조에 저장된 PCB 주소가 디스패치되면 본격적인 처리기 문맥교환이 일어난다. 그럼 PCB에는 어떤 정보들이 저장되어야..

CS/OS 2021.10.11

[ 운영체제 ] PCB ( Process Control Block )

프로세스(Process)란? 하드웨어는 한정되지만 소프트웨어는 무한하다. 운영체제는 하드웨어 자원이 효율적으로 사용되도록 소프트웨어를 번갈아 가면서 실행시켜야 한다. 하드웨어 중 가장 핵심이 되는 부품은 CPU이다. 이를 '처리기'라 부르겠다. 처리기는 프로그램을 '프로세스(Process)' 단위로 처리한다. 그러므로 프로그램은 '프로세스'로 구현되기에 프로세스를 프로그램의 '인스턴스'라고도 부른다. 운영체제는 처리기의 이용률을 극대화 할 수 있도록 여러 프로세스 수행을 인터리빙(interleaving)한다. 위 그림은 메모리 인터리빙의 모습이다. bank1, bank2, bank3, bank4 는 서로 다르지만 메모리 주소를 번갈아가면서 부여받는다. 그래야 처리기가 여러 개의 프로세스를 순차적으로 접근..

CS/OS 2021.09.29

HDLC 프로토콜( High-Level Data Link Control )

HDLC 프로토콜은 OSI 2계층인 데이터 링크 계층의 표준 프로토콜이라 할 수 있다. 현재는 잘 사용되고 있지 않다. 그 이유는 주소(Address) 부분이 8bit 밖에 되지 않아 256가지의 호스트만 접근가능하기 때문이다. 그러나 HDLC 프로토콜은 데이터 링크 계층의 표준처럼 인식되고 있기에 살펴볼 가치가 있다. 기본용어 호스트 : 데이터 통신을 위해 연결된 컴퓨터 주국(Primary Station) : 명령(Command)을 전송하는 호스트 종국(Secondary Station) : 명령에 응답(Response)하는 호스트 혼합국(Combined Station) : 주국과 종국의 기능을 모두 가진 호스트 명령(Command) : 주국에서 전송되는 메시지 응답(Response) : 종국에서의 회신..

CS/NETWORK 2021.06.24

프레임 구조

프레임의 구조를 살펴보자. Preamble (프리앰블) (7byte) 프레임의 가장 첫 번째 부분이다. Preamble은 '서두, 전문'이라는 의미를 갖는다. 7byte 크기로 송신호스트와 수신호스트 간의 클록 동기를 맞출 시간을 확보하는 역할을 한다. 송신호스트는 프레임을 전송한 후 일정시간 동안 긍정응답이 돌아오지 않으면 해당 프레임을 재전송하는 타임 아웃기능을 갖고 있다. 개인적인 생각에는 타임아웃 기능을 위한 클록동기 시간을 확보하기 위해 Preamble이 있는게 아닐까 싶다. Start Dlimiter (시간 구분자) (1byte) 프레임 시작을 의미한다. 프리앰블은 각 바이트는 10101010 비트 패턴을 갖는다. Start Dlimiter는 10101011 비트열이므로 프리앰블과 구분된다. ..

CS/NETWORK 2021.06.24

이더넷(Ethernet) (신호감지프로토콜)

국제 표준화 단체 IEEE는 LAN의 표준 연구 결과를 IEEE 802 시리즈로 발표한다. LAN과 관련된 Media Access 기술이나 새로운 LAN이 개발되면 IEEE 802 시리즈에 표준으로 자리잡는다. IEEE 802.3 안에는 1-persistent CSMA/CD 방식의 Media Access 방식이 표준으로 자리잡고 있는데, 이를 실제로 구현한 제품이 '이더넷(Ethernet)'이다. 이처럼 이더넷은 여러 LAN 제품 중 하나의 제품일뿐이었다. 그러나 다른 LAN 제품들과의 숱한 경쟁을 이겨내고 지금은 거의 LAN 통신의 표준으로 자리잡고 있다. 신호감지 LAN은 Media Acess기술이 필요하다. WAN과는 달리 LAN은 한정된 선로(Media)를 여러 장비가 공유하는 경우가 많다. 사무..

CS/NETWORK 2021.06.24

슬라이딩 윈도우 프로토콜 (흐름제어)

지난 포스팅에서 효율적인 오류제어를 위헤 데이터 프레임에는 순서번호가 있다고 말했다. 하지만 데이터 순서 번호가 있다고 송신 측에서는 프레임을 마구잡이로 보낼 수 없다. 수신 호스트는 데이터 프레임을 버퍼에 보관하여 처리하는데, 버퍼가 가득찬다면 버퍼로 들어오는 데이터 프레임이 유실될 수 있다. 그러므로 흐름제어를 해주어야 한다. 일반적으로 가장 많이 사용되는 흐름제어를 위한 프로토콜이 슬라이딩 윈도우 프로토콜이다. 슬라이딩 윈도우 프로토콜 지난 포스팅에서 프레임 릴레이 방식으로 송신호스트는 수신호스트로 다수의 프레임을 연달아 보낸다고 말하였다. 그렇다면 몇 개의 프레임을 보내야 적절한 흐름을 유지할 수 있을까? 여기서 연달아 보낼 수 있는 프레임의 개수를 두고, 윈도우 크기(Window Size)라 부..

CS/NETWORK 2021.06.24

프레임 오류제어

데이터 전송 과정 중 데이터는 분실이나 변형될 수 있다. 이런 오류가 발생했을 때, 네트워크는 어떤 반응을 할까? 데이터는 프레임 단위로 전송된다. 데이터를 수신한 호스트는 데이터에 오류가 없는지 검사한 후, 이상 여부를 송신호스트에 응답한다. 송신호스트는 수신호스트가 보낸 응답내용을 토대로 재전송 여부를 판단한다. 데이터는 전송되는 과정에서 스위치와 라우터 같은 여러 중개 호스트를 만난다. 오류가 많이 나던 옛날에는 중개 호스트를 거칠 때마다 프레임을 잘 받았는지 응답을 주고 받았다. 실제로 송신호스트에는 타임아웃기능이 있어, 일정시간동안 응답이 오지 않으면 오류가 발생했다고 판단하고 데이터 프레임을 재전송한다. 프레임 릴레이(Frame Relay) 하지만 이렇게 중개호스트마다 오류제어를 하고 송신호스..

CS/NETWORK 2021.06.24

인터넷 라우팅(Internet Routing)

지난 포스팅에서는 서로 다른 네트워크를 연결하려면 게이트웨이가 필요하고 LAN과 WAN을 연결하려면 게이트웨이로 라우터가 필요하다는 내용을 다루었었다. 이번 포스팅에서는 라우터가 어떤 방식으로 다른 네트워크로 데이터를 전송시키는지 알아보겠다. 라우터는 데이터가 이동할 경로를 배정하는데 이를 라우팅(Routing)이라 한다. 경로 배정 방식에는 고정 경로 배정 방식과 적응 경로 배정 방식, 이렇게 두 가지가 있다. 현재 인터넷은 적응 경로 배정 방식을 채택하고 있다. 고정 경로 배정 방식 경로 배정 방식은 특정 네트워크에 도착하려면 거쳐야 하는 라우터를 1 대 1로 지정하는 것이다. Network 1로 가려면 라우터 a를 거쳐야하고 Network 2로 가려면 라우터 b를 거쳐야 한다고 고정하여 라우팅 테이..

CS/NETWORK 2021.06.24