반응형 IT Computer74 단일처리 CPU 스케줄링 개념과 종류 (OS Scheduling 1) 스케줄링 다중 프로세스 처리를 위해 꼭 필요한 기본 개념입니다. 여기서는 단일처리의 경우 스케줄링 개념을 설명합니다. 스케줄링은 CPU를 프로세스들이 번갈아면서 좀 더 효율적으로 동작하게끔 합니다. 스케줄링의 목적은 CPU의 이용을 최대화 하는데 있습니다. 코어는 하나의 프로세스만 처리하는 것이 당연한 일입니다. (CMT 제외 ,CMT 칩 수준 스레딩 : 코어당 여러개의 스레드를 두어 메모리 스톨로 인한 이용률 저하를 막는데 있음) 그런데 프로세스가 I/O 요청으로 대기하고 있다면 CPU는 그저 쉬게 됩니다. 이는 성능에 있어서, 효율에 있어서 좋지 않습니다. 다른 밀려있는 수많은 프로세스를 수행하지 못하고 낭비됩니다. 때문에 스케줄링 작업을 하여 이를 방지합니다. CPU, I/O 버스트 CPU 스케줄링.. 2021. 10. 8. 파이썬 바이너리 파일 입출력 struct와 pickle 바이너리 파일 입출력은 저수준 방식의 파일 입출력을 사용하는 방법입니다. 바이트 열을 다루게 됩니다. 기본적으로 텍스트 파일 입출력과 사용방법이 동일합니다. 옵션에 바이너리 모드인 것을 명시해주면 됩니다. with open('s.txt','wb') as ori: ori.write(b'1234') 바이너리 데이터를 다루기 위해서 struct, pickle 패키지 등의 패키지를 알게 되면 다루기가 수월합니다. 바이너리를 다루는 만큼 저수준 데이터를 다루므로 운영체제, 시스템, 언어에 대한 이해도가 있으면 좋습니다. struct 패키지 파이썬으로 다루지 않은 바이너리 파일을 다루려면 struct 패키지를 사용하는 것이 좋습니다. 바이트 문자열로 pack, unpack 함수가 있습니다. c의 구조체 형식으로 저.. 2021. 9. 25. 파이썬 파일 입출력과 포인터 사용하기 파일 입출력 파이썬에는 기본적으로 텍스트 모드로 파일을 입출력할 수 있습니다. 텍스트 모드와 16진수 단위로 다루는 바이너리 모드로 사용할 수 있습니다. 바이너리 모드는 저수준 모드로 원시 데이터를 직접 다룹니다. 여기에서는 파일 입출력에 대한 도구, 기능들을 다룹니다. open('test.txt','r') as file: #file=open('test.txt','r') 과 동일 text=file.read() close(file) 일반적으로 다음과 같이 사용한다. 파일 입출력이 끝난 후 close로 마무리해줘야 합니다. with 키워드 with 키워드는 사실상 파일 입출력에 있어서 같이 쓰는 것이 좋습니다. with 키워드를 사용하면 close를 사용하지 않아도 됩니다. 만일 예외가 발생하여 파일 입출력.. 2021. 9. 18. 스레드 Thread 현대의 프로세서들은 보통 다중 스레드를 지원합니다. 프로세서의 이용률을 높이기 위해 병렬 처리의 기회를 잡는 것인데 커널 수준의 스레드와 사용자 수준의 스레드로 나뉩니다. 스레드에 대한 기초와 개념에 대해서 설명합니다. 스레드 TRHEAD 스레드는 프로세서에서 아주 작은 단위이며 프로세스 실행 흐름에 아주 작은 단위이기도 합니다. 스레드의 구성은 TID, PC, 레지스터, 스택을 가집니다. 스레드는 단일, 다중 스레드일 수 있으며 단일의 경우 하나의 코어와 같습니다. 다만 뒤에서 설명하겠지만 사용자 수준에서 다중 스레드는 구현할 수 있습니다. 스레드를 이용하여 하나의 응용프로그램이 여러 가지 작업을 할 수 있도록 돕습니다. 다중 스레드의 경우 어느 정도 오버헤드를 감수해야 합니다. 그럼에도 다중 스레드는.. 2021. 9. 5. 파이썬 format 메서드 다양한 포매팅을 돕는 메서드 % 포맷팅보다 더 정교하고 완벽하게 표현하려면 format 메서드를 사용하면 됩니다. 문자열 객체의 기본 제공 메서드로 '문자열'.format(인수들) 또는 문자열 변수 s.format(인수) 형태로 사용이 가능합니다. 물론 아무 문자열이나 다 되는 것은 아니고 포맷이 지시된 문자열이어야 합니다. 변수로 사용하던 문자열 그 자체로 사용해도 똑같습니다. format 메서드 가장 간단한 예입니다 print('{}+{}={}'.format(15,5,20)) 당연하겠지만 문자열 '내용' 부분은 하나의 객체이고 format 메서드를 통해 포매팅하는 것입니다. {} 안에는 어떤 자료형도 상관없이 사용 가능합니다. 변수를 통해 사용하는 것도 가능합니다. 중괄호 자체를 출력하고 싶다면 {{ 혹은 }}로 두 번 연달아 .. 2021. 8. 22. 파이썬 % 포매팅에 대하여 출력 출력 시에 자료형에 따라 혹은 표현 방법을 지정함에 따라 좀 더 보기 좋게 표현하기 위해 혹은 더 정확하게 표현하기 위해 포매팅을 사용합니다. 가장 정교하고 완벽하게 포맷팅을 원한다면 format 메서드를 이용하면 됩니다. 하지만 이 내용에서는 format에 대한 자세한 내용은 다루지 않습니다. 여기서는 % 지시자를 이용한 포맷팅 내용을 다룹니다. % 포매팅 % 을 이용한 방법은 C/C++ printf 사용방법과 유사합니다. 먼저 매우 간단한 예입니다. a=100 print('number : %d ' %a) #number : 100 출력 위와 같이 변수 a를 % d에 출력하는 내용입니다. 여러 개를 출력할 경우는 다음과 같습니다. a=10,b=2,c=12 print('%d+%d=%d'%(a,b,c).. 2021. 8. 14. 이전 1 2 3 4 5 6 7 8 ··· 13 다음 반응형