약 2달 전쯤 친구들이 모여있는 단톡방에서 포스텍 박사과정을 진행중인 친구가 여느때와 같이 우는소리를 하기 시작했습니다. 얘기를 들어보니 자기가 하는 연구가 대충 단백질 만드는거라는데 만들어진 단백질의 분자량만 가지고 그 단백질을 구성하는 아미노산들의 조합을 뽑아보고 싶다는겁니다. 저런 화학지식에 대해 아는게 전혀없는 저에게는 뭔소린가 싶었지만 설명을 듣다보니 생각보다 할만하다? 라는 느낌이 들었습니다. (물론 처음에 말한 조건과 나중에 말한 조건이 달라서 낭패를 보긴했습니다.. ) 조건은?처음에 저한테말해줬던 조건은 1. 단백질 분자량 약 500~ 10000 정도의 값을 입력할 수 있어야한다. (double 값) 2. 아미노산의 종류와 각 분자량은 이미 20개 정도로 정해져있다. 3. 필수로 들어가는 ..

네트워크와 인터넷 통신과 네트워크 통신 환경의 발전 - 모스부호 : 전기를 이용한 최초의 통신 수단으로, 미리 정해놓은 짧은 음과 긴 음을 조합하여 먼 곳에 있는 사람에게 실시간으로 문자를 전송 - 전화 : 통신하려는 대상을 선으로 연결하여 부호가 아닌 사람의 음성 전달 - 무전기 : 최초의 무선통신 기기로, 양쪽으로 통신할 수 있으나 어느 시점에는 한쪽으로만 통신이 가능 통신 방향 - 단방향 통신(simplex) - 한쪽 방향으로만 통신이 이루어지는 방식 - 예) 모스부호, 라디오, TV 방송 등 - 양방향 통신(duplex) - 양쪽 방향으로 동시에 통신이 이루어지는 방식 - 예)일반 전화기 - 반양방향 통신(half duplex) - 단방향 통신과 양방향 통신의 중간형태 - 양방향 통신이기는 하지만..

파일과 파일 시스템 파일 시스템의 개요 파일 시스템 - 사용자가 직접 파일을 보관하는 대신 파일 관리자를 두어 저장 장치의 관리를 맡기는 시스템 - 파일 관리자가 파일 테이블을 사용하여 파일을 관리 - 사용자가 특정 파일에 접근하려면 파일 관리자로부터 파일에 접근할 수 있는 권한을 획득해야함(key) 블록과 파일 테이블 - 블록은 저장장치에서 사용하는 가장 작은단위로, 한 블록에 주소 하나가 할당 - 블록은 여러 개의 섹터로 구성되면 블록의 크기는 시스템마다 다름 - 블록 크기를 작게 설정하면 내부 단편화 현상이 줄어들어 저장장치를 효율적으로 쓸 수 있지만, 파일이 여러 블록으로 나뉘어 파일 입출력 속도가 느려짐 - 큰 파일을 많이 사용할 때는 블록 크기를 크게 잡는 것이 좋음 파일 분류 - 실행파일 :..

입출력 시스템 입출력장치와 채널 주변장치 - 주변장치는 저속 주변장치(키보드, 마우스 등)와 고속 주변장치(그래픽 카드, 하드 디스크 등)으로 나뉨 - 하나의 버스로 주변장치를 묶으면 저속장치가 고속장치의 데이터 이동을 방해함 채널 - 데이터가 지나다니는 하나의 통로 채널 공유와 채널 분리 - 채널은 모든 주변장치가 공유하면 전체적으로 데이터 전송 속도가 느려짐 - 전송 속도가 비슷한 장치끼리 묶어서 장치별로 채널을 할당하면 전체 데이터 전송 속도를 향상할 수 있음 입출력 버스의 구조 초기의 구조 - 모든 장치가 하나의 버스로 연결 - CPU가 작업을 진행하다가 입출력 명령을 만나면 직접 입출력장치에서 데이터를 가져오는 폴링 방식 이용 입출력 제어기를 사용한 구조 - 버스는 메인버스와 입출력 버스의 2개..

요구 페이징 요구 페이징의 개요 프로세스의 일부만 메모리로 가져오는 이유 - 메모리를 효율적으로 관리하기 위해서(메모리가 꽉차면 관리하기 어려우므로 가급적 적은 양의 프로세스만 유지) - 응답 속도를 향상하기 위해서(용량이 큰 프로세스를 전무 메모리로 가져와 실행하면 응답이 늦어질 수 있으므로 필요한 모듈만 올려 실행) 요구 페이징 - 사용자가 요구할 때 해당 페이지를 메모리로 가져오는 것 - 페이지를 미리 가져 오는 방식은 가져온 페이지를 쓰지 않을 경우 메모리를 낭비하게 됨 - 따라서 요구 페이징이 메모리의 절약, 메모리의 효율적 관리, 프로세스의 응답속도 향상 등의 효과를 볼 수 있음 페이지 테이블 엔트리의 구조 요구페이징과 스왑 영역 - 페이지가 스왑 영역에 있는 경우는 크게 두가지 - 요구 페이..

가상 메모리의 개요 가상 메모리 시스템 프로그래머가 메모리 크기를 고려하여 프로그래밍하기 어려움 가상메모리 - 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술 - 가상메모리를 이용하면 프로세스는 운영체제가 어디에 있는지, 물리 메모리의 크기가 어느 정도인지 신경 쓰지 않고 메모리를 마음대로 사용할 수 있음 가상 메모리의 구성 - 크게 프로세스가 바라보는 메모리 영역과 메모리 관리자가 바라보는 메모리 영역으로 나뉨 - 가상 메모리에서 메모리 관리자는 물리 메모리의 부족한 부분을 스왑 영역으로 보충 가상 메모리의 크기 - 가상 메모리에서 메모리 관리자가 사용할 수 있는 메모리의 전체 크기는 물리 메모리(실제 메모리)와 스왑영역을 합한 크기이다. 동적 주소 변환 - 가상 주소를 실..

메모리 관리의 개요 메모리 주소 - 1 바이트로 나뉜 메모리의 각 영역은 메모리 주소로 구분하는데 보통 0번지부터 시작 - cpu메모리에 있는 내용을 가져오거나 작업 결과를 작업 결과를 메모리에 저장하기 위하 메모리 주소 레지스터(MBR) 사용 메모리 관리의 복잡성 메모리 관리의 복잡성 - 메모리는 폰노이만 구조의 컴퓨터에서 하나의 프로그램만 실행시킴으로 메모리 관리가 단순함 - 시분할 시스템에서는 운영체제를 포함한 모든 응용 프로그램이 메모리에 올라와 실행되기 때문에 메모리 관리가 복잡함 메모리 관리의 이중성 메모리 관리의 이중성 - 프로세스 입장에서는 메모리를 독차지 하려 하고, 메모리 관리자 입장에서는 관리를 효율적으로 하고 싶어함 소스코드의 번역과실행 언어 번역 프로그램의 종류 - 컴파일러 : 소..
교착상태의 개요 교착상태의 정의 교착상태 - 2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만 기다리며 작업을 더이상 진행하지 못하는 상태 기아상태와 차이점 - 기아현상 : 운영체제가 잘못된 정책을 사용하여 특정 프로세스의 작업이 지연되는 문제 - 교착상태 : 여러 프로세스가 작업을 진행하다보니 자연 발생적으로 일어나는 문제 교착상태의 발생 시스템자원 - 교착상태는 다른 프로세스와 동시에 공유할 수 없는 자원을 사용할 때 발생 공유변수 - 교착상태는 공유변수를 사용할 때 발생 응용 프로그램 - 데이터베이스 같은 응용 프로그램에서도 교착 상태 발생 - 데이터베이스는 데이터의 일관성을 유지하기 위해 잠금을 사용하는데, 이때 교착상태가 발생할 수 있음 자원 할당 그래프 자원 할당 그래프 - 프로세스가 어..

프로세스 간 통신 프로세스 간 통신의 개념 프로세스 내부 데이터통신 - 하나의 프로세스 내에 2개 이상의 스레드가 존재하는 경우의 통신 - 프로세스 내부의 스레드는 전역 변수나 파일을 이용하여 데이터를 주고받음 프로세스 간 데이터 통신 - 같은 컴퓨터에 있는 여러 프로세스끼리 통신하는 경우 - 공용 파일 또는 운영체제가 제공하는 파이트를 사용하여 통신 네트워크를 이용한 데이터 통신 - 여러 컴퓨터가 네트워크로 연결되어 있을 때 통신 - 소켓을 이용하여 데이터를 주고받음 프로세스 간 통신의 분류 통신 방향에 따른 분류 양방향 통신 - 데이터를 동시에 양쪽 방향으로 전송할 수 있는 구조로, 일반적인 통신은 모두 양방향 통신 - 프로세스 간 통신에서는 소켓 통신이 양방향 통신에 해당 반양방향 통신 - 데이터를..

스케줄링의 개요 cpu스케줄러 - 운영체제에서 관리자의 역할을 담당 - 여러 프로세스의 상황을 고려하여 cpu와 시스템 자원의 배정을 결정 스케줄링의 단계 고수준 스케줄링 - 시스템 내의 전체 적업 수를 조절하는것 - 어떤 작업을 시스템이 받아들일지 또는 거부할지를 결정 - 시스템 내에서 동시 실행 가능한 프로세스의 총 개수가 정해짐 - 장기 스케줄링, 작업 스케줄링, 승인 스케줄링이라고도 함 //전체 시스템의 부하를 고려하여 작업을 시작할지 말지 결정 중간수준 스케줄링 - 중지와 활성화로 전체 시스템의 활성화된 프로세스 수를 조절하여 과부하를 막음 - 일부 프로세스를 중지 상태로 옮김으로써 나머지 프로세스가 원만하게 작동하도록 지원 - 저수준 스케줄링이 원만하게 이루어지도록 완충하는 역할 //시스템에 ..
- Total
- Today
- Yesterday
- 알고리즘
- Kotlin
- 해결
- flame
- chatting
- node.js
- RecyclerView
- django server
- 에러해결
- Hummingbird
- 코틀린
- DART
- 에러
- 플러터
- flutter
- springboot
- Tutorial
- socket.io
- 안드로이드스튜디오
- redis
- Git
- mysql
- password
- WAS
- Android Studio
- CHANNELS
- 안드로이드
- github
- Django
- Android
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |