네트워크와 인터넷 통신과 네트워크 통신 환경의 발전 - 모스부호 : 전기를 이용한 최초의 통신 수단으로, 미리 정해놓은 짧은 음과 긴 음을 조합하여 먼 곳에 있는 사람에게 실시간으로 문자를 전송 - 전화 : 통신하려는 대상을 선으로 연결하여 부호가 아닌 사람의 음성 전달 - 무전기 : 최초의 무선통신 기기로, 양쪽으로 통신할 수 있으나 어느 시점에는 한쪽으로만 통신이 가능 통신 방향 - 단방향 통신(simplex) - 한쪽 방향으로만 통신이 이루어지는 방식 - 예) 모스부호, 라디오, TV 방송 등 - 양방향 통신(duplex) - 양쪽 방향으로 동시에 통신이 이루어지는 방식 - 예)일반 전화기 - 반양방향 통신(half duplex) - 단방향 통신과 양방향 통신의 중간형태 - 양방향 통신이기는 하지만..
파일과 파일 시스템 파일 시스템의 개요 파일 시스템 - 사용자가 직접 파일을 보관하는 대신 파일 관리자를 두어 저장 장치의 관리를 맡기는 시스템 - 파일 관리자가 파일 테이블을 사용하여 파일을 관리 - 사용자가 특정 파일에 접근하려면 파일 관리자로부터 파일에 접근할 수 있는 권한을 획득해야함(key) 블록과 파일 테이블 - 블록은 저장장치에서 사용하는 가장 작은단위로, 한 블록에 주소 하나가 할당 - 블록은 여러 개의 섹터로 구성되면 블록의 크기는 시스템마다 다름 - 블록 크기를 작게 설정하면 내부 단편화 현상이 줄어들어 저장장치를 효율적으로 쓸 수 있지만, 파일이 여러 블록으로 나뉘어 파일 입출력 속도가 느려짐 - 큰 파일을 많이 사용할 때는 블록 크기를 크게 잡는 것이 좋음 파일 분류 - 실행파일 :..
입출력 시스템 입출력장치와 채널 주변장치 - 주변장치는 저속 주변장치(키보드, 마우스 등)와 고속 주변장치(그래픽 카드, 하드 디스크 등)으로 나뉨 - 하나의 버스로 주변장치를 묶으면 저속장치가 고속장치의 데이터 이동을 방해함 채널 - 데이터가 지나다니는 하나의 통로 채널 공유와 채널 분리 - 채널은 모든 주변장치가 공유하면 전체적으로 데이터 전송 속도가 느려짐 - 전송 속도가 비슷한 장치끼리 묶어서 장치별로 채널을 할당하면 전체 데이터 전송 속도를 향상할 수 있음 입출력 버스의 구조 초기의 구조 - 모든 장치가 하나의 버스로 연결 - CPU가 작업을 진행하다가 입출력 명령을 만나면 직접 입출력장치에서 데이터를 가져오는 폴링 방식 이용 입출력 제어기를 사용한 구조 - 버스는 메인버스와 입출력 버스의 2개..
요구 페이징 요구 페이징의 개요 프로세스의 일부만 메모리로 가져오는 이유 - 메모리를 효율적으로 관리하기 위해서(메모리가 꽉차면 관리하기 어려우므로 가급적 적은 양의 프로세스만 유지) - 응답 속도를 향상하기 위해서(용량이 큰 프로세스를 전무 메모리로 가져와 실행하면 응답이 늦어질 수 있으므로 필요한 모듈만 올려 실행) 요구 페이징 - 사용자가 요구할 때 해당 페이지를 메모리로 가져오는 것 - 페이지를 미리 가져 오는 방식은 가져온 페이지를 쓰지 않을 경우 메모리를 낭비하게 됨 - 따라서 요구 페이징이 메모리의 절약, 메모리의 효율적 관리, 프로세스의 응답속도 향상 등의 효과를 볼 수 있음 페이지 테이블 엔트리의 구조 요구페이징과 스왑 영역 - 페이지가 스왑 영역에 있는 경우는 크게 두가지 - 요구 페이..
가상 메모리의 개요 가상 메모리 시스템 프로그래머가 메모리 크기를 고려하여 프로그래밍하기 어려움 가상메모리 - 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술 - 가상메모리를 이용하면 프로세스는 운영체제가 어디에 있는지, 물리 메모리의 크기가 어느 정도인지 신경 쓰지 않고 메모리를 마음대로 사용할 수 있음 가상 메모리의 구성 - 크게 프로세스가 바라보는 메모리 영역과 메모리 관리자가 바라보는 메모리 영역으로 나뉨 - 가상 메모리에서 메모리 관리자는 물리 메모리의 부족한 부분을 스왑 영역으로 보충 가상 메모리의 크기 - 가상 메모리에서 메모리 관리자가 사용할 수 있는 메모리의 전체 크기는 물리 메모리(실제 메모리)와 스왑영역을 합한 크기이다. 동적 주소 변환 - 가상 주소를 실..
메모리 관리의 개요 메모리 주소 - 1 바이트로 나뉜 메모리의 각 영역은 메모리 주소로 구분하는데 보통 0번지부터 시작 - cpu메모리에 있는 내용을 가져오거나 작업 결과를 작업 결과를 메모리에 저장하기 위하 메모리 주소 레지스터(MBR) 사용 메모리 관리의 복잡성 메모리 관리의 복잡성 - 메모리는 폰노이만 구조의 컴퓨터에서 하나의 프로그램만 실행시킴으로 메모리 관리가 단순함 - 시분할 시스템에서는 운영체제를 포함한 모든 응용 프로그램이 메모리에 올라와 실행되기 때문에 메모리 관리가 복잡함 메모리 관리의 이중성 메모리 관리의 이중성 - 프로세스 입장에서는 메모리를 독차지 하려 하고, 메모리 관리자 입장에서는 관리를 효율적으로 하고 싶어함 소스코드의 번역과실행 언어 번역 프로그램의 종류 - 컴파일러 : 소..
교착상태의 개요 교착상태의 정의 교착상태 - 2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만 기다리며 작업을 더이상 진행하지 못하는 상태 기아상태와 차이점 - 기아현상 : 운영체제가 잘못된 정책을 사용하여 특정 프로세스의 작업이 지연되는 문제 - 교착상태 : 여러 프로세스가 작업을 진행하다보니 자연 발생적으로 일어나는 문제 교착상태의 발생 시스템자원 - 교착상태는 다른 프로세스와 동시에 공유할 수 없는 자원을 사용할 때 발생 공유변수 - 교착상태는 공유변수를 사용할 때 발생 응용 프로그램 - 데이터베이스 같은 응용 프로그램에서도 교착 상태 발생 - 데이터베이스는 데이터의 일관성을 유지하기 위해 잠금을 사용하는데, 이때 교착상태가 발생할 수 있음 자원 할당 그래프 자원 할당 그래프 - 프로세스가 어..
프로세스 간 통신 프로세스 간 통신의 개념 프로세스 내부 데이터통신 - 하나의 프로세스 내에 2개 이상의 스레드가 존재하는 경우의 통신 - 프로세스 내부의 스레드는 전역 변수나 파일을 이용하여 데이터를 주고받음 프로세스 간 데이터 통신 - 같은 컴퓨터에 있는 여러 프로세스끼리 통신하는 경우 - 공용 파일 또는 운영체제가 제공하는 파이트를 사용하여 통신 네트워크를 이용한 데이터 통신 - 여러 컴퓨터가 네트워크로 연결되어 있을 때 통신 - 소켓을 이용하여 데이터를 주고받음 프로세스 간 통신의 분류 통신 방향에 따른 분류 양방향 통신 - 데이터를 동시에 양쪽 방향으로 전송할 수 있는 구조로, 일반적인 통신은 모두 양방향 통신 - 프로세스 간 통신에서는 소켓 통신이 양방향 통신에 해당 반양방향 통신 - 데이터를..
스케줄링의 개요 cpu스케줄러 - 운영체제에서 관리자의 역할을 담당 - 여러 프로세스의 상황을 고려하여 cpu와 시스템 자원의 배정을 결정 스케줄링의 단계 고수준 스케줄링 - 시스템 내의 전체 적업 수를 조절하는것 - 어떤 작업을 시스템이 받아들일지 또는 거부할지를 결정 - 시스템 내에서 동시 실행 가능한 프로세스의 총 개수가 정해짐 - 장기 스케줄링, 작업 스케줄링, 승인 스케줄링이라고도 함 //전체 시스템의 부하를 고려하여 작업을 시작할지 말지 결정 중간수준 스케줄링 - 중지와 활성화로 전체 시스템의 활성화된 프로세스 수를 조절하여 과부하를 막음 - 일부 프로세스를 중지 상태로 옮김으로써 나머지 프로세스가 원만하게 작동하도록 지원 - 저수준 스케줄링이 원만하게 이루어지도록 완충하는 역할 //시스템에 ..
프로세스의 개요 프로세스의 개념 프로그램 - 저장장치에 저장되어있는 정적인 상태 프로세스 - 실행을 위해 메모리에 올라온 동적인 상태 일괄작업 방식 - 메모리위에 여러 프로세스를 올리고 순서대로 처리해주고 순서대로 주문 리스트에서 삭제 -> 순서를 정하는데에 큐 사용 시분할 방식 - 메모리 위 여러 프로세스를 올리고 동시에 진행함 -> 모든 작업을 처리하고 주문 리스트 비움 프로세스 제어 블록(PCB) - 운영체제가 해당 프로세스를 위해 관리하는 자료구조 - 프로세스 구분자 : 각 프로세스를 구분하는 구분자 - 메모리 관련 정보 : 프로세스의 메모리 위치 정보 - 각종 중간값 : 프로세스가 사용했던 중간값(cpu 레지스터에 들어있던 값) 프로세스와 프로그램의 관계 - 프로그램이 프로세스가 된다는 것은 운..
- Total
- Today
- Yesterday
- 코틀린
- Android Studio
- node.js
- springboot
- Kotlin
- 안드로이드
- Hummingbird
- Django
- redis
- Android
- flame
- 알고리즘
- Git
- CHANNELS
- password
- 안드로이드스튜디오
- WAS
- mysql
- RecyclerView
- 에러해결
- django server
- github
- flutter
- socket.io
- DART
- 해결
- Tutorial
- 플러터
- 에러
- chatting
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |