학교수업, CS 61

[발표자료]멀티 스레드 VS 멀티 프로세스

구분 운영체제의 내용을 크게 4개의 파트로 구분할 수 있었습니다. 나눈 기준은 기술 면접 부분을 통해서 각 파트가 서로 얼마나 연결되어 있는지 관련도를 중심으로 나누었습니다. 보시는 바와 같이 멀티스레드와 멀티프로세스를 비교하는 부분, cpu스케줄링 부분, 세모포어와 뮤텍스를 비교하는 부분, 페이징과 세그먼테이션을 비교하는 부분으로 나눌 수 있었습니다. 여기에서 세부적으로 구분한다면 멀티스레드와 멀티프로세스 비교 부분 안에 cpu 작동방식과 문맥교환, 프로세스 상태 변화, 시분할 시스템에 관한 내용을 포함할 수 있고, 세마포어와 뮤텍스를 비교하는 내용안에는 교착상태와 임계구역에 관한 내용을 포함할 수 있습니다. 마지막으로 페이징과 세그먼테이션을 비교하는 부분 안에서는 가상메모리를 어떻게 할당 하는지와 메..

메모리 관리

운영체제는 프로세스를 구성하는 모듈을 전부 메모리에 올리지 않고 필요한 모듈만 메모리에 올려 실행하고 나머지 모듈은 필요하다고 판단될 때 메모리로 불러 사용한다. - 메모리를 효율적으로 관리하기 위해서. 메모리가 꽉 차면 관리하기 어렵다. - 응답 속도를 향상시키기 위해서. 용량이 큰 프로세스를 전부 메모리로 가져와 실행하면 응답이 늦어질 수 있다. 요구 페이징: 사용자가 요구할 때 해당 페이지를 메모리로 가지고 오는 것. 미리 가져오기: 예상되는 페이지를 미리 가져오는 방식. 대표적으로 캐시 페이지 테이블 구조 가상 메모리 시스템에서 사용자의 프로세스는 물리 메모리와 스왑영역 중 한 곳에 있다. 이 때 페이지가 스왑영역에 있는 경우는 2가지이다. - 요구 페이징으로 인해 처음부터 물리 메모리에 올라가지..

가상메모리/물리메모리

가상 메모리는 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술이다. 이 기술 덕분에 프로세스는 운영체제가 어디에 있는지, 물리 메모리의 크기가 어느 정도인지 신경 쓰지 않고 마음대로 메모리를 사용할 수 있다. 스왑영역: 하드디스크에 존재하지만, 메모리 관리자가 관리하는 영역으로 메모리의 일부이며 가상 메모리의 구성요소이다. 메모리 관리자는 메모리의 부족한 부분을 스왑영역으로 보충한다. 스왑아웃: 물리 메모리가 꽉 차면 일부 프로세스를 보내는 것 스왑인: 몇 개의 프로세스가 작업을 마치면 스왑 영역에 있는 프로세스를 메모리로 가지고 오는 것 동적 주소 변환: 물리 메모리와 스왑 영역을 합쳐서 프로세스가 사용하는 가상 주소를 실제 메모리의 물리 주소로 변환하는 것. 동적 주소 변..

물리메모리 관리

메모리 관리 메모리 관리의 이중성: 여러 작업을 동시에 처리할 때 메모리를 어떻게 관리하는지에 대한 문제이다. 복잡한 메모리 관리는 ‘메모리 관리 시스템’이 담당한다. 프로세스 입장에서는 메모리를 독차지하려 하고, 메모리 관리자 입장에서는 관리를 효율적으로 하고 싶어 하는데 이를 메모리의 이중성이라고 한다. 일괄 처리 시스템에서는 한 번에 한가지 작업만 처리했기 때문에 메모리 관리가 어렵지 않았지만, 시분할 시스템에서는 운영체제를 포함한 모든 응용 프로그램이 메모리에 올라와 실행되기 때문에 메모리 관리가 복잡하다. 컴파일러를 사용하는 방식에서는 소스코드를 컴퓨터가 실행할 수 있는 기계어로 번역한 후 한꺼번에 실행한다. 인터프리터를 사용하는 방식에서는 소스코드를 한 행씩 번역하여 실행한다. 메모리 관리 작..

운영체제란

운영체제를 왜 배워야 할까? 운영체제는 프로그램들이 메모리 또는 cpu에 접근을 할 때 운영체제를 통해서만 접근을 하게 해서 자원(메모리, cpu, ram 등)을 보호한다. 자 생각해 보자. 우리가 힘들게 만든 파일이 약간의 실수로 날아가면 아깝지 않은가... 이를 방지하기 위해서 운영체가 필요한 것이다. 즉 응용프로그램이 자원에 직접 접근해서 자원이 무질서하게 관리되는 것을 방지하기 위해서 운영체제를 사용한다. 운영체제의 구성 운영체제는 2개의 구역으로 구분할 수 있다. 커널 영역과 사용자 영역이다. 커널 영역에는 window와 같은 운영체제의 핵심 내용이 들어가 있다. 사용자 영역에는 응용 프로그램이 작동할 수 있는 공간이 들어가 있다. 그러면 작동하는 프로그램을 뭐라고 할까? 바로 프로세스라고 한다..

데이터 전송

정보공유 => 컴퓨터의 하드웨어 뿐 아니라 각 호스트에서 제공하는 논리적인 정보를 공유하는 것. 병렬 처리에 의한 성능 향상 => 하나의 공유 시스템 버스에 다수의 메인 프로세스를 장착하거나 I/O 장치의 처리 속도를 향상시키기 위해 I/O전용 프로세서를 설치하는 것이 예제. 시스템이 수행할 작업을 분할해 동시에 처리함으로써 처리 시간을 단축시키는 효과를 얻는다. 중복 저장에 따른 신뢰성 향상 => 정보의 신뢰성을 향상시키기 위해 사용한다. 중요한 정보를 여러 시스템에 중복 저장하여 정보의 접근성과 신뢰성을 향상시킬 수 있다. 전송과 라우팅 => 송신 호스트가 수신 호스트에 데이터를 전달하려면 전송과 교환 과정을 거쳐야 한다. 교환은 전달경로가 둘 이상일 때 라우터에서 데이터를 어느 방향으로 전달할지를 ..

네트워크 기술

라우팅 기능 회선교환: 시스템은 고정 대역으로 할당된 연결을 설정하여 데이터 전송을 시작한다. 회선에 할당된 고정 크기의 안정적인 전송률로 데이터를 전송할 수 있으며, 연결이 유지되는 동안에는 다른 연결에서 이 대역을 사용할 수 없다. 회선 교환 시스템에서는 하나의 연결에 대하여 전송되는 모든 데이터가 동일한 경로로 라우팅 된다. 패킷 교환 시스템은 컴퓨터 네트워크 환경에서 주로 이루어진다. 데이터를 미리 패킷 단위로 나누어 전송하므로 패킷을 기준으로 라우팅이 이루어진다. 패킷 교환에는 모든 패킷의 경로를 일정하게 유지시키기는 가상회선 방식과 패킷들이 각각의 경로로 전송되는 데이터그램 방식이 있다. 라우팅 시스템 => 전송 선로를 이용해 데이터를 전송할 때는 전용 회선을 이용하거나 교환 회선을 이용할 수..

네트워크 개념

계층적 모델 구조 모듈화: 복잡한 시스템을 기능별로 모듈화 하면 시스템 구조가 단순해저서 전체 시스템을 이해하기 쉽다. 또한 각 단위 모듈이 독립적인 기능을 수행하기 때문에 고장이나 업그레이드 등의 상황에 손쉽게 대처할 수 있다. 계층구조: 분할된 모듈들은 협력 관계를 유지하면서 유기적으로 동작한다. 모듈 구조는 서로 동등한 위치에서 서비스를 주고받을 수도 있고 특정 모듈이 다른 모듈에 서비스를 제공하는 계층 구조를 이루기도 한다. 네트워크에서는 독립적인 고유 기능을 수행하는 모듈들이 상하 계층 구조로 연결되어 동작한다. - 복잡하고 큰 시스템을 기능별로 작게 분류해서 간단하고 작은 시스템으로 재구성할 수 있다. - 상하 계층에 인접한 모듈 사이의 인터페이스를 포함하여 분할된 모듈이 연동할 수 있는 표준..

네트워크 기초

공부방법 네트워크는 학교에서 기초 전공 과목으로, 배운 내용을 1차로 정리하고 그 내용을 바탕으로 작성 할 예정입니다. 시험 공부를 하면서 요약한 내용을 업로드 할 예정이므로 아마 한번에 글이 많이 올라올 것 같습니다. 용어 TCP: Transmission Control Protocol 시스템: 내부 규칙에 따라 자율적으로 동작하는 대상 인터페이스: 시스템과 시스템을 연결하기 위한 표준화된 접촉지점 전송매체: 물리적인 전송수단 프로토콜: 상호 연동되는 시스템이 전송 매체를 통해 데이터를 교환할 때 표준화된 대화 규칙 네트워크: 프로토콜을 사용하여 데이터를 주고받을 때 이들을 하나의 단위로 통칭한 것 인터넷: 네트워크가 유기적으로 연결되어 동작하는 통합 네트워크 노드: 인터넷 내부를 구성하는 라우터와 인터..

교착상태

교착상태 => 2개 이상의 작업이 동시에 이루어지는 경우, 다른 작업이 끝나기만 기다리며 작업을 더 이상 진행하지 못하는 상태이다. 여러 프로세스가 작업을 진행하다 보니 발생하는 자연적인 현상이다. 아사현상 =>잘못된 정책으로 특정 프로세스의 작업이 지연되는 문제 =>교착상태는 다른 프로세스와 공유할 수 없는 자원을 사용할 때 발생한다. 또한 잠금을 사용할 때도 발생한다. 임계구역 문제를 해결하기 위해서 잠금을 구현한 코드로 무한 대기를 막지 못해 교착상태가 발생한다. 데이터베이스는 데이터의 일관성을 유지하기 위해 잠금을 사용하는데 이때 교착 상태가 발생할 수 있다. 자원할당 그래프 => 프로세스가 어떤 자원을 사용 중이고 어떤 자원을 기다리고 있는지를 방향성이 있는 그래프로 표현한 것이다. 다중 지원 ..