1. 알고리즘
- 백준 1707번
- https://ahlight.tistory.com/127
백준 1707번 자바
1. 문제 https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그
ahlight.tistory.com
- 며칠간 풀었던 문제들이 깃헙에 오토푸시가 안돼서 원인을 찾다보니 CORS관련 문제라는 것을 알게 됐다. CORS가 뭔지는 아직 모른다 공부하자. 부트스트랩 프로그램은 운영체제 커널을 찾아 메모리에 적재해야 한다.
2. 운영체제(공룡책)
*챕터1
1.4 운영체제의 작동
컴퓨터를 실행하려면 초기 프로그램(부트스트랩 프로그램)을 실행해야 한다. 초기 프로그램은 단순한 형태를 띠는 경향이 있으며 펌웨어로 저장된다. 커널이 메모리에 적재되고 난 후 실행되면 시스템과 사용자에게 서비스를 제공한다. 여러 데몬들이 적재되고나면 시스템이 완전히 부팅되고 시스템은 어떤 이벤트(인터럽트, 트랩, 시스템콜 등)가 발생할 때까지 기다린다.
* 데몬(daemon)
- 사용자가 직접 제어하지 않고, 백그라운드에서 여러 작업을 하는 프로그램
- 일반적으로 프로세스로 실행되며 부모 프로세스를 갖지 않는다. 즉 PPID가 1이며 init 바로 아래에 위치한다.
1.4.1 다중 프로그래밍과 다중 태스킹(multiprogramming and multitasking)
다중 프로그래밍은 CPU가 항상 한 개는 실행 할 수 있도록 프로그램을 구성해 CPU이용률을 높인다.
운영체제는 여러 프로세스를 동시에 메모리에 유지한다. 그렇기 때문에 멀티 프로그래밍은 단순히 CPU에 다른 프로세스가 실행되는 것이라 볼 수 있다. A프로세스가 대기해야하는 경우 CPU는 B나 또 다른 프로세스를 실행한다. A프로세스는 대기를 마친 후 CPU를 다시 돌려 받는다.
다중 태스킹은 다중 프로그래밍의 논리적 확장이다. CPU는 여러 프로세스를 자주 전환시켜 사용자에게 빠른 응답시간을 제공한다. 예를 들어 사용자가 키보드 또는 마우스, 터치스크린 등을 이용해 입력을 할 경우(대화식 입출력), 운영체제는 입력이 진행되는 동안 CPU를 쉬게 하지 않고 다른 응용프로그램으로 신속하게 전환한다. 여러 프로세스가 동시에 실행 준비가 완료되면 어떤 프로세스를 선택할지 CPU스케줄링을 통해 선택한다. 다중 태스킹 시스템에서 운영체제는 적절한 응답시간을 보장해야하는데, 일반적으로 가상 메모리(virtual memory)를 사용하는 것이다. 가상 메모리는 일부만 메모리에 적재된 프로세스의 실행을 허용하는 기법이다.(10장에서 자세히) 가상 메모리의 가장 큰 장점은 물리 메모리보다 크기가 커도 된다는 것이다. 가상 메모리는 메인 메모리를 크고 균등한 저장장치의 배열로 추상화하여, 사용자에게 보이는 논리 메모리를 물리 메모리로부터 분리 시킨다.
다중 프로그래밍 및 다중 태스킹 시스템도 파일 시스템을 제공해야 한다. 파일 시스템은 보조저장장치에 존재하므로 저장장치 관리가 제공되어야 한다. 또한 사용자의 부적절한 사용으로부터 자원을 보호하고, 프로세스의 동기화 및 통신을 위한 기법을 제공하며, 프로세스가 교착상태에 빠지지 않도록 해야한다.
1.4.2 이중 모드와 다중모드 운용(Dual-Mode and Multimode Operation)
시스템을 올바르게 실행하려면 운영체제 코드 실행과 사용자-정의 코드 실행을 구분해야 한다. 즉 적어도 두 개의 독립된 연산모드(사용자 모드와 커널모드 - 수퍼바이저, 시스템, 특권 모드)가 필요하다. 해당 기법은 모드 비트(mode bit - 0이면 커널 모드 1이면 사용자모드)를 사용해 구분한다. 컴퓨터 시스템이 사용자 응용을 위하여 실행될 때 시스템은 사용자 모드에 있게 된다. 하지만 사용자 응용이 운영체제로부터 서비스를 요청하면(시스템 콜) 요청을 수행하기 위해 커널모드로 전환해야 한다. 이중 모드는 잘못된 사용자로부터 운영체제, 그리고 잘못된 사용자 서로를 보호하는 방법을 제공한다. 악영향을 끼칠 수 있는 일부 명령을 특권 명령(privileged instruction)으로 지정해 보호를 한다.
모드의 개념은 두 가지 이상으로 확장될 수 있다. 예를 들어 Intel은 4개의 분리된 보호링이 있고 ARMv8에는 7가지 모드가 있다. 가상화를 지원하는 CPU는 종종 VMM(Virtual machine manager)이 시스템을 제어하는 시점을 표시하기 위해 별도의 모드를 가진다.(커널모드보단 권한이 적고 사용자모드 보단 많음)
시스템 콜은 컴퓨터 시스템의 처리기가 지원하는 기능에 따라 다양한 방법으로 호출된다. 일반적으로 인터럽트 벡터의 특정 위치로 트랩을 거는 형태를 취한다. 시스템 콜은 하드웨어에 의해 하나의 소프트웨어 인터럽트로 취급된다.
각 모드의 규칙을 위반하는 오류가 하드웨어에 의해 탐지 되면 운영체제에서 이를 처리한다. 이때 운영체제는 프로그램을 비정상 종료시키고, 이것은 사용자가 요청한 비정상적인 종료와 동일한 코드이다.
* 가상화 : 한정된 자원(서버, 운영체제, 응용프로그램, 저장장치)등을 추상화를 통해 다수의 자원으로 보이게끔 만드는 기법
3. 후니의 쉽게 쓴 시스코 네트워킹
* Part3
Section 3 ~ 5
2진수 관련 계산 등
* DHCP(Dynamic Host Configuration Protocol) : 동적 호스트 구성 프로토콜 - ip주소 자동할당
- DHCP Discover : 아직 ip주소를 할당 받지 못한 클라이언트 pc가 브로드캐스트를 통해 ip주소 할당을 요청
- DHCP Offer :서버에서 브로드캐스트 메시지 또는 유니캐스트를 통해서 요청에 응답하며, ip주소 정보와 단말의 MAC주소 정보등을 네트워크 정보와 함께 보낸다.
- DHCP Request : 단말이 받은 ip주소를 사용하겠다는 확정을 받기 위한 메세지
- DHCP Ack : 주소를 확정 시켜준다.
* Part4
Section 1
랜카드 : 데이터를 케이블에 실어서 허브나 스위치, 혹은 라우터 등으로 전달해주고 자신에게 온 데이터를 CPU에 전달해주는 역할
- PC의 버스 방식(ISA, EISA, PCI)에 맞는 랜카드를 설치해야한다.
- 목적지 주소와 랜카드의 MAC주소가 같으면 랜카드는 CPU에 IRQ(Interrupt Request)를 보내고 요청을 확인한 CPU는 Base Memory(어떤 서비스를 할지 미리 정해놓는 곳)로 이동해 작업을 시작
4. 김영한의 Spring 로드맵
- 미학습
'TIL' 카테고리의 다른 글
TIL - 0314 (0) | 2023.03.14 |
---|---|
TIL - 0310 (0) | 2023.03.11 |
TIL - 0308 (0) | 2023.03.08 |
TIL - 0307 (0) | 2023.03.07 |
TIL - 0306 (1) | 2023.03.06 |