진짜 개발자
본문 바로가기

CS(Computer Science) (총 73개)

프로세스 개요 프로세스는 실행중인 프로그램을 일컫는 말이다하드디스크에는 많은 프로그램들이 적재되어 있고 그 프로그램들이 메인메모리에 적재되기 위해서는 Job Scheduler의 할당을 기다려야하고 또 메인 메모리에는 많은 프로세스들이 적재되어 있고 그 프로세스들이 CPU 할당을 받기 위해 Cpu Scheduler의 할당을 기다려야한다 프로세스 - 하드디스크에 있는 프로그램이 메인 메모리에 적재된 것 - 실행중인 프로그램 - 프로그램카운터의 값 , 레지스터의 내용 , 스택 , 데이터섹션, 힙 을 포함한다 1. Job Scheduler ( Long Term Scheduler ) - 하드 디스크의 프로그램들이 메인 메모리에 할당 되기위해 Job Queue에서 대기중일 때그것을 관장하여 메인메모리에 프로그램들을 할당하는 것 ..
Network - ARP 프로토콜 ARP 프로토콜 - 논리적인 주소(IP)를 물리적인 주소(Mac)으로 변환해주는 프로토콜 이다. - 통신하고자 하는 단말의 IP만을 알고있을 때 사용되는 프로토콜이다 - 결국 두 PC가 통신하기 위해서는 IP가 아닌 MAC주소가 필요하다( PC1에서 PC2에게 데이터를 전송하고자 하는 경우, PC1은 PC2의 IP address는 알고 있지만 MAC address를 알지 못한다. 이런 경우, Destination MAC address를 알지 못하면 Layer 2 Header를 완성하지 못하기 때문에 데이터를 전송할 수가 없다.) 자세히원래 연결된 두 PC가 통신을 하기 위해서는 IP가 아닌 MAC address를 이용하여 통신을 하게 된다보통 같은 네트워크 내에 있는 (물리적으로 연결된) PC들의 MAC..
Network - Network 계층) SubNet (ClassLess) 이전 포스팅에서 다룬 ClassFul 방식은 브로드캐스트 도메인 영역이 아주 큰 단점이 있다브로드캐스트 영역이 클 수록 내가 보낸 정보가 많은 사람에게 전달되고 그에 따라 네트워크 회선에 많은 트래픽이 발생할 것이고또 보안에 취약하다예를 들어 A 클래스의 경우 한 네트워크 당 대략 16,000,000 개의 호스트를 가진다이러한 A클래스의 경우 한네트워크 대역에 너무 많은 호스트ID가 존재하고 또 보통의 경우에는 이 모든 호스트ID들을 사용하기 어렵다따라서 이를 또 논리적으로 네트워크를 분할하는데 이를 서브넷팅이라고 한다. 1. 서브넷 마스크 : 운영체제의 입장에서는 18.253.111.12 라는 IP가 들어온다면 Classful 에 의거하여 A클래스 라고 판단하고 18 까지만 IP주소가 같다면 같은 네트..
Network - Network 계층) SubNet ( Classful IP) @네트워크 영역을 구분하는 방법에는1. Classful : Class로써 네트워크 영역을 구분 2. ClassLess : Subnet 등등 으로 구분 가 있다. @네트워크 영역을 구분 하는 이유물리적으로 연결된 장비들에는 전기적인 신호가 모두 가게 되어있다 이를 브로드캐스트라고 하는데전 세계에는 수 많은 PC들이 존재한다 그런데 이 수 많은 PC들이 모두 브로드캐스트로 대화를 하게 된다면내가 받고 싶지 않는 데이터들도 CPU가 처리를 해야 하므로 엄청난 오버헤드가 발생할 수 있고또 보안적인 염려도 있다.보통 PC와 허브로 구성된 LAN영역에서는 브로드캐스트 신호가 왔다갔다 한다.이를 구분하기 위한 장비로 스위치 , 라우터가 있다. @IP : ip 는 인터넷상의 모든 호스트를 구별하기 위한32비트로 이루어..
메모리관리(메모리 낭비 방지) *CPU는 프로그램이 동작할때에 필요한 데이터나 동작들을 메모리의 특정 주소로부터 가지고 와야하는데 이는 프로그램이 만들어질 때 코드화 되어있다.따라서 항상 같은 위치의 메모리 주소로 부터 데이터를 불러오게 된다.*하지만 메모리에 프로그램을 적재할 때에는 항상 같은 위치에 프로그램을 적재 할 수 없다 만약 정해진 위치에만 프로그램을 적재할 수 있다면 낭비되는 메모리가 많을 것이다. 때문에 운영체제는 프로그램을 적재할 때 빈공간을 찾아 적절히 적재하게 된다 이를 맞추어 조절하는 역할을 하는 것이 바로 MMU의 재배치 레지스터 이다. *적재 : 프로그램을 메인 메모리에 상주시키는 동작을 의미한다. *동적 적재 : 동적 적재는 프로그램 실행에 반드시 필요한 데이터/루틴 만 적재하는 것을 의미한다. 프로그램은 ..
멀티프로그래밍 , 멀티프로세싱 멀티 프로그래밍 - 멀티프로그래밍이란 과거 비싼 자원인 컴퓨터 CPU의 Idle time(입출력을 기다리는 시간)등을 줄이기 위해 등장하였다 동시에 여러 프로그램을 실행시킨다는 의미이지만 실제로 프로세서는 한순간에 하나의 처리만을 할 수 있으므로 동시에 여러 프로그램을 실행시키지는 않고 매우 짧은 시간(사용자가 느끼지 못할 만큼)동안 여러 프로그램을 돌아가며 수행한다 따라서 사용자는 자신만이 그 컴퓨터를 사용하고 있다고 느낀다. 컴퓨터에서 입출력 시간은 전자적 작업에 비해 매우 시간이 오래걸리는 작업이다 물리적 장치가 직접 움직이는 시간이 고려되기 때문이다 비다중 프로그래밍에서는 사용자의 입력이 필요하거나 출력이 필요한 경우 이러한 긴시간동안 CPU가 유휴상태로 되지만 다중프로그래밍 환경에서는 입출력이 ..