[KOCW] 운영체제 2차시 - 운영체제 서론
·
IT/CS 공부
1. 운영체제 서론 운영체제란? : Operating System 운영체제가 없는 컴퓨터는 '야생마'와 같다. 참고) 프로그램의 실행 과정 더보기 어떤 프로그램을 실행하기 전, 어떤 명령들(instruction)이 미리 메모리(휘발성 메모리)에 적재됨 프로그램 -> (메모리) (프로세스) 프로그램 실행과정 프로그램(명령어들의 집합) -> 메모리에 올림 -> 프로세스로 올림 프로그램을 어떻게 메모리에 올릴까? 프로세스는 하나 뿐인데 어떻게 프로그램이 동시에 실행될 수 있을까? -> 운영체제 없이는 불가능 운영체제란 무엇인가? : 컴퓨터 하드웨어를 관리하는 시스템 (Control program for computer) 컴퓨터에 있는 하드웨어를 잘 관리하여 성능을 높이고 사용자에게 편의성을 제공 부팅 (Boo..
[KOCW] 운영체제 1차시 - 강의소개
·
IT/CS 공부
친구와 함께 운영체제에 대한 강의를 매일 1강씩 듣고, 블로그에 정리하기로 내기를 했습니다 ㅎㅎ 패널티로 벌금 내기 싫으니까 매일 열심히 하게 되겠죠? 무료대학강의 플랫폼인 KOCW에서 유명한 강의 중 하나입니다. 매일 매일 성실히 공부해서 정리하겠습니다~ 그럼 시작합니다. 운영체제 강의 - 경성대 컴퓨터공학부 / 2학년 2학기 / 학부기초 / 3학점 (강의 3, 실습 0) - 양희재 교수 - 교재 : Silberschatz et al, Operating System Concepts with java, 8th ed, 2011 - 수업목표 1) Windows, Unix/Linux, MacOS X, IOS, ... 2) 운영체제의 정의, 역할, 역사 3) 프로세스 관리, 주기억장치 관리, 파일 관리, .....
[GET_NEXT_LINE] 구현 예시
·
IT/42Seoul
혹시나 문제가 된다면 바로 비공개 처리하겠습니다. 지적이나 댓글 환영합니다! 그저께 get_next_line의 구현을 끝내고 어제오늘 평가를 받아, gnl 과제를 보너스 점수 포함 115점으로 통과했다. 코드에 대한 이해가 낮아지기 전에 어서 코드리뷰를 하도록 해야겠다. 우선, get_next_line 과제에서는 3개의 파일을 구현하게끔한다. get_next_line.c, get_next_line_utils.c, get_next_line.h 를 구현해야한다. 보너스 파트에서는 여러개의 fd를 사용하여도 각 fd의 내용에 대한 스레드가 유지될 수 있도록 해야하는데, 이 경우에는 static 변수를 2차원 배열로 만들면 해결된다. 따라서 보너스 파트와 기본 파트의 함수 구성을 똑같이 하였으므로 보너스에 대한..
[GET_NEXT_LINE] 구현 준비
·
IT/42Seoul
혹시나 문제가 된다면 바로 비공개 처리하겠습니다. 지적이나 댓글 환영합니다! 과제 중에 동료평가용 설명 정리 차원으로 블로그 글을 작성하기 때문에, 통과 완료 전까지는 계속 글을 수정할 수도 있습니다. 양해바랍니다. 감사합니다. 참고로, 이 포스팅의 중요한 본론은 (5), (6), (7) 부터 나옵니다. libft가 조금 늦게 끝난 감이 있지만, get_next_line을 지금이라도 구현하게 되어서 다행이라고 생각한다. 처음에 get_next_line을 보고 좀 난감하다는 생각을 했다. 예를 들자면, "1줄씩 자른다" 라는 것은 문자열 포인터로 전체 문단이 주어진 경우에는 쉽다. 문자 "\n"를 기준으로, while문을 처음부터 문자열 끝까지 돌며 strdup() 함수 등을 사용하며 문자열을 분리해주면 ..
Libft 과제 시 유의점 (테스터기, protected, Makefile)
·
IT/42Seoul
libft나 다른 하위 서클 함수들은 주로 어떤 정해진 것을 구현하는 문제인 경우가 많다. 따라서 깃허브에 libft 과제를 뮬리넷(42채점 서버)처럼 테스트 할 수 있는 테스터기가 있다. 이 테스터기들을 통해 미처 하지 못한 예외처리나 필수사항의 구현을 체크하여 코드를 보완할 수 있다. 아주 중요하다. * 테스터기 - 내가 주로 쓴 테스터기는 4가지가 있다. 1) Libftest 2) libft-unit-test 3) libft-war-machine 4) libftester 깃허브에 쳐보면 이 외의 더 많은 테스터기들도 다 나온다. 기본적인 사용법은 이렇다. 일단 해당 깃 레포지터리를 깃클론 받는다. 그다음 libft-unit-test와 libftester에서는 그 안의 Makefile에 있는 평가할 ..
malloc/calloc 관련 정리
·
IT/42Seoul
42seoul에서 libft 과제의 동료평가를 진행하다보니, 고수분들께 평가받으며 내가 몰랐던 개념의 허점에 대해 많이 알게 되었다. 그에 대하여 정리하여 스스로 개념을 보완해보려 한다. * malloc : 메모리를 할당 1) 프로토타입 #include void *malloc(size_t size); 2) 인자들 size : 메모리 블록의 크기(바이트 단위) 3) 리턴값 메모리 할당에 성공했을 경우 : 할당한 메모리 블록을 가르키는 포인터를 리턴 (해당 포인터의 타입은 언제나 (void *)형이므로, 사용자가 원하는 타입으로 캐스팅 해줘야 함) 매모리 할당에 실패했을 경우 : 널 포인터를 리턴 주소값을 반환받기 떄문에, 할당된 힙 메모리 영역에 접근하려면 포인터를 사용해야한다. 사용 후 반드시 free(..