신문(매일 경제)



알고리즘

BOJ 17219 비밀번호 찾기

딕셔너리와 같은 unordered_map을 사용해본 문제
fastio를 위해 버퍼와의 동기화를 해제하는 방식을 사용했다.



운영체제 강의의 소개 범위를 들었다. 내용이 컴퓨터 구조 + 시스템 프로그래밍을 다루는 듯하다.

운영체제

컴퓨터 시스템을 실행하는 S/W로 kernel이라 불리기도 한다.
컴퓨터에 언제나 실행되고 있는 프로그램으로 process(실행되고 있는 프로그램), 자원, 입.출력을 관리하기 위해 존재한다.
응용 프로그램과 하드웨어 사이에서 다리 역할을 한다.
I/O를 관리하는 코드가 대부분을 차지한다.
user mode, kernel mode(하드웨어 접근)가 존재한다. 하드웨어를 직접적으로 접근할 수 없게 해 보호하는 역할이다.

컴퓨터

정보를 처리하는 기계
범용 컴퓨터(폰 노이만 아키텍쳐)의 경우 S/W의 명령을 모두 수행할 수 있는 것을 뜻한다.
범용성을 가진다. (NOT, AND, OR로 모든 계산을 수행, 이는 NAND만 사용한다고도 볼 수 있다.)
계산가능성이 존재.

폰 노이만 아키텍쳐(ISA)

내장형 프로그램을 가진 컴퓨터에 대한 명칭이다.
명령어를 fetch - decode - excute하는 과정을 가진다.

GPU

실수연산을 위한 별도의 회로를 뜻한다.

부트스트랩 프로그램

전원이 켜졌을 때 MEM에는 쓰레기 값들이 존재한다. 이 때 CPU는 EEPROM에 있는 부트스트랩 프로그램을 실행하게 된다.
가장 먼저 실행되는 프로그램으로 신발을 신을 때 신발 뒷꿈치 쪽을 당기면서 신는 것에서 명칭을 유래한 듯 하다.

Interrupt

I/O와 CPU간의 통신방법으로 언제나 발생할 수 있다.

Symmetric multiprocessing(SMP)

여러 프로세서들이 모든 task를 관리하는 방식을 뜻한다.

Multiprogramming

동일한 시간에 1개 이상의 프로그램을 실행하는 방법으로 CPU의 효율성을 증가시킨다.
이것의 확장으로 Multitasking이 존재.
이를 위해 CPU scheduling이 필요하다. 여러 프로세스들이 있기 때문에 시스템은 다음에 어떤 것을 실행할 지 결정 해야 한다.

Virtualization

CPU가 여러 프로세스를 실행하듯, VMM을 통해 여러 운영체제를 실행하는 것

OS interface

for users : CLI(shell), GUI, Touch-Screen
for application : OS API(직접적인 호출은 복잡해서 제작되어 있는 라이브러리를 사용



백준 문제 크롤링

저장하는 문제의 메모리를 최소화 하려면

  1. 태그의 구분
  2. 태그의 언어

두가지 파트를 생각해야 한다.

TEXT의 경우 길이가 곧 메모리라고 했으니 필요없는 따옴표들을 지우기 위해 원래는 배열을 사용했지만 문자열로 계속 저장을 하게 하였다.
만약 영어 태그 이름을 사용할 거라면 가지고 오는 태그의 위치를 바꾸면 된다.

0개의 댓글